我很困惑为什么有一个iPhone API用于反向地理编码(lat/long to address),但不适用于常规地理编码(地址到lat/long).
我希望能够在地图(MKMapView)上以用户输入的地址显示注释.(作为文字,而不是触摸地图)据我所知,这意味着我必须确定输入地址的纬度/经度.
看起来它可以使用HTTP完成,但是,反向地理编码ALSO也可以这样做.为什么他们支持一个而不支持另一个?
关于"为什么?"的答案 还是"怎么样?" 都会受到赞赏.
***有人在这个主题上学到了什么新东西?我还没有听说过任何公告?
我正在使用Google Maps API来获取2个英国邮政编码之间的距离.
var yourPostcode = $("#YourPostcode").val();
var restaurantPostcode = $("#Postcode").val();
var point1 = GetPointFromPostcode(yourPostcode);
var point2 = GetPointFromPostcode(restaurantPostcode);
var distance = point1.distanceFrom(point2, 3959).toFixed(1);
Run Code Online (Sandbox Code Playgroud)
但是,GetPoint函数异步调用Google API,因此在计算时间距离时,第1点和第2点尚未设置(我相信这是发生了什么?)
我还在每个语句之后发出警报来检查变量的值,并且这样做我得到了正确的值,等待我点击确定必须给它足够的时间来获得结果吗?虽然它不再这样做了:(
这是获取点功能
function GetPointFromPostcode(postcode) {
var point;
localSearch.execute(postcode + ", UK");
if (localSearch.results[0]) {
var resultLat = localSearch.results[0].lat;
var resultLng = localSearch.results[0].lng;
point = new GLatLng(resultLat, resultLng);
} else {
$(".PostcodeError").append("Postcode Invalid");
}
return point;
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以在本地搜索时设置回调,以便在结果返回时调用,但问题是这里有2次搜索.
我想要的是在BOTH搜索返回结果后才调用计算距离线.
你知道怎么做吗?
谢谢
我的问题简而言之:GPS坐标中使用的小数位数与位置的准确性之间是否存在相关性?
现在我正好使用Android SDK,但我确信这个问题可以应用于许多其他地理位置SDK.基本上,Android返回最多14位数的GPS坐标.在大多数情况下,这似乎有些过分.让我们说我需要精确到大约10英尺乘10英尺的区域.我真的需要担心多少小数?我正在寻找的用例是我想知道一个人是否在特定纬度的北方或南方 - 我需要在数据库中存储多少位数以及我需要比较多少位?
如何使用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) 我在下面使用此函数来查找两组纬度和经度对之间的距离.它似乎工作正常,但我有两个问题.它以千克而不是英里(我在美国)返回值,并且公里值似乎偏离三位小数?它返回的值是这样的:34366.7661043296这是从加利福尼亚州瓦伦西亚到加利福尼亚州伯班克约35公里的距离.为什么在公里,更重要的是为什么十进制问题?如果它只返回36.50英里之类的东西会很棒.非常感谢任何帮助,谢谢你提前.
public static double GetDistance(double sLatitude, double sLongitude, double eLatitude, double eLongitude)
{
var sCoord = new GeoCoordinate(sLatitude, sLongitude);
var eCoord = new GeoCoordinate(eLatitude, eLongitude);
return sCoord.GetDistanceTo(eCoord);
}
Run Code Online (Sandbox Code Playgroud) 我在iOS应用程序中实现了搜索栏.我想获得与Apple Maps应用程序相同(部分结果)的搜索提示.我试图找出苹果如何实现它,但我在谷歌或在stackoverflow上没有成功.
在我的UITableView*searchHintTableView中显示的内容无关紧要.我只是没有得到正确的搜索提示数量.我在相同的设备和相同的3G wifi网络(3G SIM路由器)上使用我的应用程序和Apple Maps应用程序.
我尝试了什么:
在方法中:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;
Run Code Online (Sandbox Code Playgroud)
我有以下代码:
...
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
NSString *location = [NSString stringWithFormat:@"%@", searchText];
// CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:coord
// radius:100000000 identifier:@"Hint Region"];
// [geocoder cancelGeocode];
[geocoder geocodeAddressString:location
completionHandler:^(NSArray *placemarks, NSError *error) {
if (error != nil) {
DDLogCVerbose(@"Error %@", [error description]);
[searchHintArray removeAllObjects];
[searchHintTableView reloadData];
return;
}
DDLogCVerbose(@"CLGeocoder >> %@", [placemarks description]);
//to get rid of unwanted results …Run Code Online (Sandbox Code Playgroud) 我们收集了大量数据,并且正在尝试在我们的数据库上构建一个系统,该系统可以将纬度 - 经度信息转换为城市和国家.我们不想使用任何谷歌Api.我们想要设置我们自己的服务器来执行此操作.
我有以下代码来检索推文.指定的地理编码是纽约州内的一个区域.但是,当我使用print(json_reply ['user'] ['location'])打印位置时,它将打印位置为荷兰沃尔堡.我想这是用户在个人资料信息中指定的位置.此外,地理编码始终返回null.我对来自纽约州的推文和坐标很感兴趣.
tweets = api.search(q='xyz', lang='en', since='2016-11-02',until='2016-11-06', geocode='43,-75,90km', count=1)
json_str = json.dumps(tweets[0]._json)
print(json_str)
json_reply = json.loads(json_str)
print(json_reply['text'])
print(json_reply['created_at'])
print(json_reply['user']['location'])
print(json_reply['geo'])
Run Code Online (Sandbox Code Playgroud)
荷兰沃尔堡
朋友们,
我正在分析一些文本.我的要求是对用不同母语的英文字母书写的地址进行地理编码.
Ex: chandpur market ke paas, village gorthaniya, UP, INDIA
Run Code Online (Sandbox Code Playgroud)
在上面的句子中,"ke paas" - >是一个HINDI词(印度民族语言),在英语中意为"近",而"chandapur market"是一个名词(可以忽略转换)
现在我的挑战是将成千上万的单词转换为英语并识别街道名称和地理代码.不幸的是,我没有邮政编码或确切的地址.
你能帮忙吗?
提前致谢 !!
geocoding ×10
google-maps ×3
javascript ×2
android ×1
apple-maps ×1
c# ×1
gis ×1
ios ×1
iphone ×1
jquery ×1
location ×1
mapping ×1
maps ×1
objective-c ×1
python ×1
r ×1
twitter ×1