谷歌地图Javascript API-结果格式化
我需要在没有地理编码的情况下显示距离矩阵请求的结果。问题是我的位置太近了,因此产生的地理编码地址是相同的 如果我能用变量名或甚至原始的lat/lon坐标对显示结果,我就能区分位置 我查看了距离矩阵响应元素的文档,但没有看到此功能 下面是javascript谷歌地图Javascript API-结果格式化,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我需要在没有地理编码的情况下显示距离矩阵请求的结果。问题是我的位置太近了,因此产生的地理编码地址是相同的 如果我能用变量名或甚至原始的lat/lon坐标对显示结果,我就能区分位置 我查看了距离矩阵响应元素的文档,但没有看到此功能 下面是javascript function initMap() { var bounds = new google.maps.LatLngBounds; var markersArray = []; var origin1 = {lat: 37.2692
function initMap() {
var bounds = new google.maps.LatLngBounds;
var markersArray = [];
var origin1 = {lat: 37.2692332704, lng: -81.7261622975};
var origin2 = {lat: 37.2625193371, lng: -81.7183645359};
var origin3 = {lat: 37.1315998981, lng: -81.8552666961};
var destinationA = {lat: 37.1854557602, lng: -81.7946133276};
var destinationB = {lat: 37.1751720467, lng: -81.792833926};
var destinationC = {lat: 37.1595851233, lng: -81.8570206921};
var destinationIcon = 'https://chart.googleapis.com/chart?' +
'chst=d_map_pin_letter&chld=D|FF0000|000000';
var originIcon = 'https://chart.googleapis.com/chart?' +
'chst=d_map_pin_letter&chld=O|FFFF00|000000';
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 37.2692332704, lng: -81.7261622975},
zoom: 8
});
var geocoder = new google.maps.Geocoder;
var service = new google.maps.DistanceMatrixService;
service.getDistanceMatrix({
origins: [origin1, origin2,origin3],
destinations: [destinationA, destinationB,destinationC],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.IMPERIAL,
avoidHighways: false,
avoidTolls: false
}, function(response, status) {
if (status !== google.maps.DistanceMatrixStatus.OK) {
alert('Error was: ' + status);
} else {
var originList = response.originAddresses;
var destinationList = response.destinationAddresses;
var outputDiv = document.getElementById('output');
outputDiv.innerHTML = '';
var showGeocodedAddressOnMap = function(asDestination) {
var icon = asDestination ? destinationIcon : originIcon;
return function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
map.fitBounds(bounds.extend(results[0].geometry.location));
markersArray.push(new google.maps.Marker({
map: map,
position: results[0].geometry.location,
icon: icon
}));
} else {
alert('Geocode was not successful due to: ' + status);
}
};
};
for (var i = 0; i < originList.length; i++) {
var results = response.rows[i].elements;
//geocoder.geocode({'address': originList[i]},
//showGeocodedAddressOnMap(false));
for (var j = 0; j < results.length; j++) {
//geocoder.geocode({'address': destinationList[j]},
//showGeocodedAddressOnMap(true));
outputDiv.innerHTML += originList[i] + ' to ' + destinationList[j] +
': ' + results[j].distance.text + ' in ' +
results[j].duration.text + '<br>';
}
}
}
});
}
函数initMap(){
var bounds=new google.maps.LatLngBounds;
var-markersArray=[];
var origin1={lat:37.2692332704,lng:-81.7261622975};
var origin2={lat:37.2625193371,lng:-81.7183645359};
var origin3={lat:37.13159981,lng:-81.8552666961};
var destinationA={lat:37.1854557602,lng:-81.7946133276};
var destinationB={lat:37.1751720467,lng:-81.792833926};
var destinationC={lat:37.1595851233,lng:-81.8570206921};
目的地变量https://chart.googleapis.com/chart?' +
“chst=d|map|u pin|u字母&chld=d|FF0000|000000”;
原始变量https://chart.googleapis.com/chart?' +
“chst=d|u map_pin_letter&chld=O|FFFF00|000000”;
var map=new google.maps.map(document.getElementById('map'){
中心:{lat:37.2692332704,lng:-81.7261622975},
缩放:8
});
var geocoder=new google.maps.geocoder;
var service=new google.maps.DistanceMatrixService;
service.getDistanceMatrix({
起源:[origin1,origin2,origin3],
目的地:[目的地A,目的地B,目的地C],
travelMode:google.maps.travelMode.DRIVING,
unitSystem:google.maps.unitSystem.IMPERIAL,
避免:错误,
避免收费:错误
},功能(响应、状态){
if(status!==google.maps.DistanceMatrixStatus.OK){
警报(“错误为:”+状态);
}否则{
var originList=response.originAddresses;
var destinationList=response.destinationaddress;
var outputDiv=document.getElementById('output');
outputDiv.innerHTML='';
var showGeocodedAddressOnMap=函数(作为目标){
var icon=asDestination?目的地:originIcon;
返回函数(结果、状态){
if(status==google.maps.GeocoderStatus.OK){
map.fitBounds(bounds.extend(结果[0].geometry.location));
markersArray.push(新的google.maps.Marker)({
地图:地图,
位置:结果[0]。geometry.location,
图标:图标
}));
}否则{
警报('由于:'+状态,地理编码未成功);
}
};
};
对于(变量i=0;i';
}
}
}
});
}
提前感谢。结果将按要求的顺序返回 origin1 - destination1 origin1 - destination2 origin1 - destination3 origin2 - destination1 --- origin3 - destination3