我试图找出iPhone上反向地理编码查找的限制,它们是每个应用程序/每个设备和每天多少?doco只说:
MKReverseGeocoder
每个Map Kit应用程序都具有有限的反向地理编码容量,因此谨慎使用反向地理编码请求对您有利.以下是最有效使用此类的一些经验法则:
所以我创建了一个访问用户位置的应用程序,然后使用Geocoder解释(反向地理编码),如下所示:
Geocoder gc = new Geocoder(ctx, Locale.getDefault());
List<Address> addresses = gc.getFromLocation(latitude, longitude, maxResults);
Address address = addresses.get(0);
town = address.getLocality();
countryCd = address.getCountryCode();
Run Code Online (Sandbox Code Playgroud)
但是我发现地理编码器服务真的不可靠,IOException和服务经常不可用.
我已经阅读了涉及垃圾邮件Geocoder服务的解决方案,直到它给出了结果,而其他人说这项服务每15秒只允许一次IP地址添加.
有时重启我的设备会使服务再次可用.
是否有其他API或方法来处理这个问题?
如何使用Google Maps V3 API在客户端进行反向地理编码?从地址到LatLng的前向地理编码是直接的(下面的代码),但是如何对反向地理编码做同样的事情呢?
普通地理编码:
geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
Run Code Online (Sandbox Code Playgroud) 我有一个与反向地理编码有关的问题.
在我的应用程序中,我有一些坐标(不是我当前的坐标),我想将它们转换为地标.我挖了很多网站和代码,但它们都是关于当前位置的反向地理编码......
有没有办法获得指定坐标(不是当前位置)的地标?
如果有,请帮我一些代码或参考.
我想检索一个地理点上小范围内所有街道地址的列表.
使用的场景是用户从当前位置的地址列表(在50米内)中选择他/她的当前地址,因为位置检索不够准确.
我想知道是否可以使用Google Maps API?否则,是否有人知道我可以用于此目的的替代API?
从我所看到的情况来看,虽然Google地图反向地理编码服务为地理点返回了许多"地址",但它们通常只是地址的不同表示,而不是地址附近的地址.
我在SO上看过一些类似的问题,但没有人能找到我想要的答案.
有时我会Service Not Available在我的申请中遇到例外情况.大多数时候,没有问题.但有时它会发生.(该应用程序仍在开发中)
解决问题的唯一方法是重启手机.关于支持论坛的相关问题38009.但我从评论中理解的是,重启设备可以永远解决问题.
它是否正确?
因为在我的情况下,错误可以返回(频率:我认为每月一次或两次,我在这个应用程序上是全职).
有没有办法从应用程序内部重新启动地理编码器?
我唯一的解决方案是提供一个替代解决方案,以防万一"手动"获取地址,如下所示.你有更好的吗?
Dbg.d(TAG, "=== address_info FetchLocationTask - doInBackground");
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
mHandler = new Handler();
Looper.loop();
}
}).start();
/**
* Implementation of a second method in case of failure:
*
*/
double lat = Double.parseDouble(args[0]);
double lng = Double.parseDouble(args[1]);
String address = String.format(Locale.ENGLISH,
"http://maps.googleapis.com/maps/api/geocode/json?latlng="+Double.toString(lat)+","+Double.toString(lng)+"&sensor=true&language="+Locale.getDefault().getCountry(), lat, lng);
Dbg.d(TAG, "fetching path : "+ address);
HttpGet httpGet = new HttpGet(address); …Run Code Online (Sandbox Code Playgroud) android reverse-geocoding google-geocoder service-not-available
第一次进行地理定位查找,我想返回用户当前所在的位置。不是在地图上,而是检索状态信息并根据他们的位置在应用程序中为他们提供选项。
当我使用 reverseGeocodeLocation 查找时,我发现它正在查找大量数据......这很棒。具体来说,我想要完整的州名而不是缩写(即加利福尼亚州与加利福尼亚州)。
唯一的问题是,当 placemark.administrativeArea 的 NSLog 只显示缩写“CA”时。
查看开发文档,它说:
“例如,如果地标位置是 Apple 的总部,则此属性的值将是字符串“CA”或“California”。
当我将整个地标转储到日志中时,我看到了加利福尼亚。这一定是一个愚蠢的问题……我到底做错了什么?
提前致谢!
structuredAddress: Apple Inc.<GEOMapItemStorage: 0x7a680f70> {
placeData = {
component = (
{
"cache_control" = CACHEABLE;
"start_index" = 0;
status = "STATUS_SUCCESS";
ttl = 15768000;
type = "COMPONENT_TYPE_HOURS";
"values_available" = 0;
version = 7;
"version_domain" = (
apple,
revgeo,
US
);
},
{
"cache_control" = CACHEABLE;
"start_index" = 0;
status = "STATUS_SUCCESS";
ttl = 15768000;
type = "COMPONENT_TYPE_RATING";
"values_available" = 0;
version = 7; …Run Code Online (Sandbox Code Playgroud) 我正在编写一个 bash 脚本,它根据 EXIF 标签重命名 JPG 文件。我的原始文件是这样命名的:
IMG_2110.JPG
IMG_2112.JPG
IMG_2113.JPG
IMG_2114.JPG
Run Code Online (Sandbox Code Playgroud)
我需要像这样重命名它们:
2015-06-07_11-21-38_iPhone6Plus_USA-CA-Los_Angeles_IMG_2110.JPG
2015-06-07_11-22-41_iPhone6Plus_USA-CA-Los_Angeles_IMG_2112.JPG
2015-06-13_19-05-10_iPhone6Plus_Morocco-Fez_IMG_2113.JPG
2015-06-13_19-12-55_iPhone6Plus_Morocco-Fez_IMG_2114.JPG
Run Code Online (Sandbox Code Playgroud)
我的 bash 脚本使用 exiftool 解析 EXIF 标头并重命名文件。对于那些不包含 EXIF 创建日期的文件,我使用的是文件修改时间。
#!/bin/bash
IFS=$'\n'
for i in *.*; do
MOD=`stat -f %Sm -t %Y-%m-%d_%H-%m-%S $i`
model=$( exiftool -f -s3 -"Model" "${i}" )
datetime=$( exiftool -f -s3 -"DateTimeOriginal" "${i}" )
stamp=${datetime//:/-}"_"${model// /}
echo ${stamp// /_}$i
done
Run Code Online (Sandbox Code Playgroud)
我被困在这个位置。我需要使用来自 EXIF 标签的 GPS 信息来确定国家和城市。exiftool 提供了一个名为“GPS 位置”的字段。在所有字段中,这似乎对确定位置最有用。
GPS Position : 40 deg 44' 49.36" N, 73 deg 56' 28.18" W
Run Code Online (Sandbox Code Playgroud)
Google 提供了用于地理定位的公共 …
我在 Angular 应用程序中使用反向地理编码。
需要的脚本在 index.html 中添加
<script async defer src="https://maps.googleapis.com/maps/api/js">
</scrip>
Run Code Online (Sandbox Code Playgroud)
组件文件看起来像这样
import { Component } from '@angular/core';
declare const google: any;
export class MapComponent {
lat;
lng;
address;
constructor() {
this.locate();
}
public locate() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
position => {
this.lat = position.coords.latitude; // Works fine
this.lng = position.coords.longitude; // Works fine
let geocoder = new google.maps.Geocoder();
let latlng = new google.maps.LatLng(this.lat, this.lng);
let request = {
latLng: latlng
};
geocoder.geocode(request, (results, status) => {
if (status …Run Code Online (Sandbox Code Playgroud) getAddress( lat: number, lng: number ) {
console.log('Finding Address');
if (navigator.geolocation) {
let geocoder = new google.maps.Geocoder();
let latlng = new google.maps.LatLng(lat, lng);
let request = { latLng: latlng };
geocoder.geocode(request, (results, status) => {
if (status === google.maps.GeocoderStatus.OK) {
let result = results[0];
let rsltAdrComponent = result.address_components;
let resultLength = rsltAdrComponent.length;
if (result != null) {
this.address = rsltAdrComponent[resultLength - 8].short_name;
} else {
alert('No address available!');
}
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试在我的 angular 4 应用程序中使用反向地理编码。我正在使用 agm 将谷歌地图与 angular …
geocoding ×3
google-maps ×3
android ×2
angular ×2
ios ×2
objective-c ×2
api ×1
awk ×1
bash ×1
geolocation ×1
gps ×1
iphone ×1
javascript ×1
location ×1
xcode ×1