我无法获得两个标记之间的路线任何帮助?
var geocodingParams = { searchText:'street abc'};
//定义回调函数以处理地理编码响应:
var onResult = function(result) {
var locations = result.Response.View[0].Result,
position,
marker;
// Add a marker for each location found
for (i = 0; i < locations.length; i++) {
position = {
lat: locations[i].Location.DisplayPosition.Latitude,
lng: locations[i].Location.DisplayPosition.Longitude
};
marker = new H.map.Marker(position);
map.addObject(position);
}
}
//获取地理编码服务的实例:
var geocoder = platform.getGeocodingService();
geocoder.geocode(geocodingParams, onResult, onError)
//路由
function calculateRouteFromAtoB(platform) {
var router = platform.getRoutingService(),
routeRequestParams = {
mode: 'fastest;car',
representation: 'display',
routeattributes : 'waypoints,summary,shape,legs',
maneuverattributes: 'direction,action',
language: 'de-DE',
alternatives : '3',
waypoint0: 'position of the marker1' ,
waypoint1: 'position of the marker2'
};
router.calculateRoute(routeRequestParams,onSuccess,onError );
}
我试图在函数calculateRouteFromAtoB()中定义waypoint0和waypoint1,任何想法?
您可以在地图中获取对象,看看它们是否是H.O.map.Marker的instanceOf。基本上它们将是您在地图上创建的标记。如果除了您创建的标记之外没有其他对象,则可以直接处理这些对象。
length = map.getObjects()。length //给出标记的数量
假设您只有两个标记(分别位于waypoint0和1),您可以按如下方式编写函数。希望这可以帮助!
function calculateRouteFromAtoB(platform) {
point1 = map.screenToGeo(map.getObjects()[0].getPosition().lat, map.getObjects()[0].getPosition().lng);
point2 = map.screenToGeo(map.getObjects()[1].getPosition().lat, map.getObjects()[1].getPosition().lng);
var router = platform.getRoutingService(),
routeRequestParams = {
mode: 'fastest;car',
representation: 'display',
routeattributes : 'waypoints,summary,shape,legs',
maneuverattributes: 'direction,action',
language: 'de-DE',
alternatives : '3',
waypoint0: point1.lat+','+point1.lng ,
waypoint1: point2.lat+','+point2.lng
};
router.calculateRoute(routeRequestParams,onSuccess,onError );
}