我正在探索Google地图API。我有一个Web服务,它返回GeoJSON对象作为响应。我想在Google地图上呈现它。我试过以下API;
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
这为我们提供了在请求参数中给定开始和结束的GeoJSON。我正在尝试从我的服务中获取GeoJSON响应,而不是Google数据,我正在尝试呈现自己的回复。
我的自定义服务返回的数据格式与Google相同。
Google服务返回的数据格式如下 我构建的对象与Google DirectionsService Response相同。
请查看以下详细信息; https://developers.google.com/maps/documentation/javascript/directions#DirectionsResults
“路由”:[{ “边界”:{ “东北”:{ “LAT”:30.2844454, “LNG”: - 97.7040698}, “西南”:{ “LAT”:30.2121885, “LNG”: - 97.7506593 }}, “版权”:“地图 数据©2014 Google“,”leg“:......步骤....}
编辑: 我尝试使用addGeoJson()API作为;
的另一个选项function loadGeoJsonString(geoString) {
var geojson = JSON.parse(geoString);
map.data.addGeoJson(geojson);
zoom(map);
}
我正在使用的JSON字符串由jsonlint验证。
答案 0 :(得分:0)
这样的东西?
directionsDisplay = new google.maps.DirectionsRenderer();
var Basingstoke = new google.maps.LatLng(51.2949612, -1.0643864);
var mapOptions = {
zoom:7,
center: Basingstoke
}
map = new google.maps.Map(document.getElementById('map'), mapOptions);
directionsDisplay.setMap(map);
var point1 = new google.maps.LatLng(51.2941293,-0.9139252);
var point2 = new google.maps.LatLng(51.3250339,-0.8050919);
var wps = [{ location: point1 }, { location: point2 }];
var org = new google.maps.LatLng ( 51.2949612, -1.0643864);
var dest = new google.maps.LatLng ( 52.3069282, -0.7540226);
var request = {
origin: org,
destination: dest,
waypoints: wps,
durationInTraffic: true,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService = new google.maps.DirectionsService();
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
var newRoute = response.routes[0].legs[2].duration.value;
directionsDisplay.setDirections(response);
alert ('Travel Time: ' + newRoute + ' seconds');
}
else
alert ('failed to get directions');
});
}
google.maps.event.addDomListener(window, 'load', initialize);