我使用Google Maps API(https://maps.googleapis.com/maps/api/geocode/xml)对地点和地址进行地理编码.但是,结果似乎不一致.administrative_area_level_2和locality或locality和sublocality_level_1似乎重叠.但是,根据地址,重叠是不同的.我需要做的一件事就是确定城市.文件说明该地区相当于一个城市,具体取决于国家.
如果我对"Noord-Holland,Nederland"进行地理编码,这是我得到的一个省:
我能够了解.一切似乎都很好......
如果我对"Amsterdam,Noord-Holland,Nederland"进行地理编码,我会得到以下结果:
在这里,我开始不理解结果.为什么阿姆斯特丹被列为administrative_area_level_2以及一个地方?也许有更高的政府机构同名?但是好的,阿姆斯特丹是当地,因此是城市.哪个是对的.
如果我对"Anton de Komplein 150,1102 CW Amsterdam,Noord-Holland,Nederland"进行地理编码,我会得到以下结果:
现在我真的不明白.
有人可以解释我应该如何解释结果吗?
Google 地图不会在 iPhone 上加载地图。但是,当我将 iPhone 连接到 Xcode 并执行该项目时,它会正确加载地图。
这是我的代码:
let camera = GMSCameraPosition.camera(withLatitude: -33.868, longitude: 151.2086, zoom: 14)
let mapViewtest = GMSMapView.map(withFrame: .zero, camera: camera)
let marker = GMSMarker()
marker.position = camera.target
marker.snippet = "Hello World"
//marker.appearAnimation = kGMSMarkerAnimationPop
marker.map = mapViewtest
view = mapViewtest
Run Code Online (Sandbox Code Playgroud)
控制台向我显示了这一点,但我不知道它是否与该问题有关:
CoreData:注释:无法在路径“/var/containers/Bundle/Application/33FC89CC-DC52-4212-A361-F54DD2AC3CD9/App_name.app/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.omo”加载优化模型
编辑
问题是地图没有出现,但标记正确显示
我正在开发一个支持谷歌地图瓷砖osmdroid的应用程序.可以在osmdroid中使用Google地图图块吗?
android google-maps openstreetmap osmdroid google-maps-android-api-2
Google API 密钥限制 - HTTP 引荐来源网址
我把我的 Azure 网站 url xxxx.scm.azurewebsites.net 放在那里,但不起作用(Google Places API Web 服务停止工作)。
localhost:44300 也不起作用。
我必须将密钥限制设置为“无”,然后 Google Places API Web 服务才能工作。
我做错了什么?
我在地图上显示标记时遇到一个问题.我想在标记下方显示一些文字,但无论如何我都做不到.这是我的示例代码,我想知道我需要添加它以在标记显示时永久显示
这是我的代码示例的一部分:
loop
htp.print('geocoder.getLatLng(');
htp.print(''''||r_klt.geoloc||''''||',');
htp.print('function(point) {');
htp.print('var baseIcon = new GIcon(G_DEFAULT_ICON);');
htp.print('baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png%22;');
--htp.print('baseIcon.shadow = "/i/pdf.png";');
htp.print('baseIcon.iconSize = new GSize(20, 34);');
htp.print('baseIcon.shadowSize = new GSize(37, 34);');
htp.print('baseIcon.iconAnchor = new GPoint(9, 34);');
htp.print('baseIcon.infoWindowAnchor = new GPoint(9, 2);');
htp.print('var letteredIcon = new GIcon(baseIcon);');
l_address := r_klt.geoloc;
htp.print('letteredIcon.image = "http://www.google.com/mapfiles/marker'%7C%7Cchr(65+l_t)%7C%7C'.png%22;');
htp.print('markerOptions = { icon:letteredIcon'};');
htp.print('var marker = new GMarker(point,markerOptions);');
htp.print('var html = "<h1>'||r_klt.geoloc||'</h1>";');
htp.print('GEvent.addListener(marker, "mouseover", function() { marker.openInfoWindowHtml(html); });');
htp.print('map.addOverlay(marker);');
htp.print('}');
htp.print(');');
l_t := l_t + 1;
end loop;
Run Code Online (Sandbox Code Playgroud) javascript google-maps google-maps-api-3 google-maps-markers
我在JavaScript街景视图中添加了以下代码.
var geocoder = new google.maps.Geocoder();
var address = "2 Simei Street 3, Singapore, Singapore 529889";
geocoder.geocode({'address': address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
console.log(latitude + " " + longitude);
var panorama = new google.maps.StreetViewPanorama(
document.getElementById('street-view'), {
position: {lat: latitude, lng: longitude},
});
}
});
Run Code Online (Sandbox Code Playgroud)
对于像"2 Simei Street 3,Singapore,Singapore 529889"和"1 Hacienda Grove,Singapore 457908"这样的地址,不显示街景,黑屏即将到来.
其他地址如"105 Simei Street 1,Singapore 520105"街景正确显示.
我不明白是什么问题.我能做什么才能使所有地址都正常.
我目前正在使用Google的地理地理编码API,并且正如文档所述,它每天限制使用2500个请求.
是否有一些服务我可以打电话来检查我已经做了多少请求,或者我还能做什么?我知道在Google的API控制台中有这些信息,但我正在考虑使用我的应用程序以编程方式执行某些操作,它可以自己知道当前状态并通知我请求是否接近结束.
仅供参考:我知道如果请求结束,服务会返回一个告知OVER_QUOTA的标志,但我有兴趣在它完成之前发现.
android google-maps google-geocoding-api google-maps-android-api-2
我需要根据城市和省名称获取具有代表性的加拿大邮政编码。我最初的方法是使用 Google 的地理编码 API 将城市、省份转换为[lat,lng]反向地理编码,以获取匹配的地址,并从中提取邮政编码。城市和省份来自使用 Google 地图自动完成功能的表单,因此我知道它们(至少几乎)始终有效。在一些测试中,这工作得很好,但我很快就在实际数据中遇到了一个失败的案例:曼尼托巴省的雪湖。
https://maps.googleapis.com/maps/api/geocode/json?address=Snow+Lake%2C+Manitoba&key=MYKEY
在几何部分,我得到:
location
lat 54.87856679999999
lng -100.0220321
location_type "APPROXIMATE"
Run Code Online (Sandbox Code Playgroud)
但每当我查找该位置(包括不同的精度级别)时,我都会得到不包含邮政编码的结果。
https://maps.googleapis.com/maps/api/geocode/json?latlng=54.8785668,-100.0220321&key=MYKEY
我也尝试过从place_id各种事情返回的 ,但没有运气。奇怪的是,如果我在常规 Google 地图网站中搜索马尼托巴省的 Snow Lake,它会精确定位并告诉我邮政编码是 R0B 1M0。那么为什么他们的网站提供了很好的信息,但没有提供 API?即使我将第二个网址中的位置替换为 Google 地图在搜索后的网址中的位置 (54.8808471,-100.0274579),我仍然无法取回邮政编码,如果我使用以下地址也无法取回邮政编码:它给出了该位置(531 Lakeshore Drive)。
通过反复试验(在 Google 地图上查找一些街道名称),我发现搜索 117 Balsam St. 会给出邮政编码和位置,我可以通过反向地理编码来获取邮政编码。但我传入的数据没有街道名称或号码,只有城市和省份,所以这不是解决方案。该地址确实为我提供了 location_type 的 ROOFTOP,而不是我为其他人获得的 APPROXIMATE 或 RANGE_INTERPOLATED。
有人知道这里有什么交易吗?是否有一种可靠的方法可以让我从这个 API 中获取我需要的东西,或者它只是一个偶然的提议?
我用这个脚本:
var place = autocomplete.getPlace();
latitude = place.geometry.location.lat();
longitude = place.geometry.location.lng();
street_number = place.address_components[0].long_name;
route = place.address_components[1].long_name;
locality = place.address_components[2].long_name;
administrative_area_level_1 = place.address_components[3].long_name;
country = place.address_components[5].long_name;
postal_code = place.address_components[6].long_name;
Run Code Online (Sandbox Code Playgroud)
当用户输入完整地址时,哪个工作正常.但是当用户只在城市或城市中输入时,则国家/地区值不存在.address_components [5]但是就位.address_components [2]:
如何知道哪个字段适合返回数组的索引?
google-maps ×10
android ×3
javascript ×3
autocomplete ×1
google-api ×1
ios ×1
osmdroid ×1
swift ×1