gpt4 book ai didi

javascript - map api视口(viewport)经度和纬度关闭

转载 作者:行者123 更新时间:2023-12-03 02:42:10 25 4
gpt4 key购买 nike

我正在开发一个动态 map API,您可以根据需要进行设置。当一个人输入他的地点名称后,我可以获得视口(viewport)的纬度和经度。首先,我得到两个值,其次它们都根据真实坐标而偏离。我也将结果返回给我自己的 map API。

经过一番困惑后,我开始比较两者并划分它们。这仍然给出了一个错误的整数。这样我就得到了与给定名称相关联的值。

google.maps.event.addDomListener(searchBox, 'places_changed', function(event) {

var places = searchBox.getPlaces();


var bounds = new google.maps.LatLngBounds();
var i, place;

for (i = 0; place = places[i]; i++) {
bounds.extend(place.geometry.location);
marker.setPosition(place.geometry.location);
for(key in places) {
if(places.hasOwnProperty(key)) {
var value = places[key];
var geoLong = value.geometry.viewport.b.b;
var geoLat = value.geometry.viewport.f.f;

示例:

帝国大厦:真实坐标:40.748817,-73.985428。

我的结果:纬度:40.746983和40.749681:经度-73.983858和-73.986556。

这是来自geometry.viewport.b.(b或f)和geometry.viewport.f.(b或f),这就是我检索信息的方式。

可能的解决方案:

经过多次尝试和错误以获得正确的结果,我偶然发现了这一点。

google.maps.event.addListener(map, 'click', function(event){
console.log( "Latitude: "+event.latLng.lat()+" "+", longitude: "+event.latLng.lng() );
});

虽然这给出了正确的值,但我不能像处理其他 2 那样调用它。它一直说 latLng 未定义,这是真的,因为它不适用于给定的对象/数组按地点。

问题:为什么视口(viewport)给出的值与真实坐标不同?

最佳答案

如果我理解正确的话,您的目的是从 Google 数据库中获取该地点的位置。

我建议遵循官方 API 引用文档并避免使用类似 viewport.b.b 的内容。或viewport.f.f在你的代码中。请注意,一旦 Google 更新 API 版本,这些未记录的属性可能会更改其名称。

如果您检查文档,您会看到 getPlaces()搜索框的方法返回 Array<PlaceResult>结果。

https://developers.google.com/maps/documentation/javascript/reference#SearchBox

所以,var value在您的代码中输入 PlaceResult记录如下:

https://developers.google.com/maps/documentation/javascript/reference#PlaceResult

geometry地点结果的属性有 PlaceGeometry此处记录的类型:

https://developers.google.com/maps/documentation/javascript/reference#PlaceGeometry

这意味着为了获得该位置的位置,您应该执行以下代码

var value = places[key];
var geoLong = value.geometry.location.lng();
var geoLat = value.geometry.location.lat();

希望这会有所帮助!

关于javascript - map api视口(viewport)经度和纬度关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48284773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com