gpt4 book ai didi

javascript - 将 Lat Lng 从另一个函数推送到 Street View Image API

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

我正在使用 Google Maps JavaScript API 和 this solution用于获取 map 上最近的点并显示它们。

“pt”值示例:

38.5803844,-121.50024189999999

这是代码:

function findClosestN(pt,numberOfResults) {

var closest = [];

for (var i=0; i<gmarkers.length;i++) {
gmarkers[i].distance = google.maps.geometry.spherical.computeDistanceBetween(pt,gmarkers[i].getPosition());
gmarkers[i].setMap(null);
closest.push(gmarkers[i]);
}
closest.sort(sortByDist);
return closest;
}

function sortByDist(a,b) {
return (a.distance- b.distance)
}

function calculateDistances(pt,closest,numberOfResults) {
var service = new google.maps.DistanceMatrixService();
var request = {
origins: [pt],
destinations: [],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.IMPERIAL,
avoidHighways: false,
avoidTolls: false
};
for (var i=0; i<closest.length; i++) request.destinations.push(closest[i].getPosition());
service.getDistanceMatrix(request, function (response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
alert('Error was: ' + status);
} else {

var origins = response.originAddresses;
var destinations = response.destinationAddresses;
var outputDiv = document.getElementById('search_results');
outputDiv.innerHTML = '';

var splitLoc = pt;
splitLoc.split(",");
alert(splitLoc[1]);

photo_lat = splitLoc[0]; // lat
photo_lng = splitLoc[1]; // lng

profile_photo = "https://maps.googleapis.com/maps/api/streetview?size=600x300&location=" + photo_lat + "," + photo_lng + "&heading=151.78&pitch=-0.76";

var results = response.rows[0].elements;
for (var i = 0; i < numberOfResults; i++) {
closest[i].setMap(map);
outputDiv.innerHTML += "<div class='location_list' style='background:url(" + profile_photo + ");'>" + "<div class='inner'>" + "<a href='javascript:google.maps.event.trigger(closest["+i+"],\"click\");'>"+closest[i].title + '</a><br>' + closest[i].address+"<br>"
+ results[i].distance.text + ' appoximately '
+ results[i].duration.text
+ "</div></div>";
}
}
});

}

在最后一个函数calculateDistances中,我尝试从“pt”变量中分离坐标,然后将纬度和经度传递到街景图像API中以输出每个位置的静态图像。

我收到错误:

Uncaught TypeError: splitLoc.split is not a function

当尝试分割pt时。我的猜测是 pt 的分割格式不正确,但我无法弄清楚。当我单独提醒 pt 时,它显示纬度和经度是正确的,但错误发生在分割上。

如何将 pt 拆分为单独的 lat lng 然后将其传入?

最佳答案

pt 不是字符串,而是具有 lat 和 lng 属性的对象。但如果你调用alert(pt),它会将对象转换为字符串。

例如

pt.toString()“(37.4418834,-122.14301949999998)”

要获取纬度/经度,只需使用 pt.lat() 或 pt.lng()

关于javascript - 将 Lat Lng 从另一个函数推送到 Street View Image API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38577740/

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