以经度/纬度为路线 [英] Using Longitude/Latitude as Waypoint

查看:82
本文介绍了以经度/纬度为路线的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



以下是我如何将自己的价值观推到

  waypts_mtlsheloc.push({
location:(45.658197,-73.636333),//我不认为我' m应该这样写,但找不到正确的方式
stopover:true
})

然后尝试像这样修改我的行

  service.route({
原点:latlng_mtlsheloc [0],
目的地:latlng_mtlsheloc [latlng_mtlsheloc.length - 1],
航点:waypts_mtlsheloc,
travelMode:google.maps.DirectionsTravelMode.DRIVING
}, function(result,status){
console.log(status)
if(status == google.maps.DirectionsStatus.OK){
path = path.concat(result.routes [0 ] .overview_path);
line_mtlsheloc.setPath(result.routes [0] .overview_path);
}
});

但它给我一个错误属性[waypoint]错误,我尝试了不同的方法写下这个位置,但似乎找不到合适的位置。 使用经纬度作为航点,它必须是google.maps.LatLng对象
文档表示字符串或LatLng;字符串是地址,LatLng是地理坐标) {
location:new google.maps.LatLng(45.658197,-73.636333),
stopover:true
})

工作示例



jsfiddle



代码片段:

var directionDisplay; var directionsService = new google.maps.DirectionsService(); var map; function initialize(){directionsDisplay = new google.maps.DirectionsRenderer(); var chicago = new google.maps.LatLng(41.850033,-87.6500523); var myOptions = {zoom:6,mapTypeId:google.maps.MapTypeId.ROADMAP,center:chicago} map = new google.maps.Map(document.getElementById(map_canvas),myOptions); directionsDisplay.setMap(地图); calcRoute();}函数calcRoute(){var request = {origin:1521 NW 54th St,Seattle,WA 98107,destination:San Diego,CA,waypoints:[{location:new google.maps.LatLng 42.496403,-124.413128),stopover:false}],optimizeWaypoints:true,travelMode:google.maps.DirectionsTravelMode.WALKING}; directionsService.route(request,function(response,status){if(status == google.maps.DirectionsStatus.OK){directionsDisplay.setDirections(response); var route = response.routes [0]; var summaryPanel = document.getElementById (directions_panel); summaryPanel.innerHTML =; //对于每一个路由,显示摘要信息for(var i = 0; i< route.legs.length; i ++){var routeSegment = i + 1; summaryPanel .innerHTML + =< b>路由段:+ routeSegment +< / b>< br />; summaryPanel.innerHTML + = route.legs [i] .start_address +to; summaryPanel。 innerHTML + = route.legs [i] .end_address +< br />; summaryPanel.innerHTML + = route.legs [i] .distance.text +< br />< br /> ;}} else {alert(directions response+ status);}});} google.maps.event.addDomListener(window,load,initialize);

h tml {height:100%} body {height:100%; margin:0px; < script src =https://


I'm trying to use the longitude latitude as a waypoint in my google maps and cant seem to get it working.

Here's how I have my values pushed

waypts_mtlsheloc.push({
    location: (45.658197,-73.636333), //I don't think I'm supposed to write this like that. But can't find the right way.
    stopover: true
}) 

And then try to modify my line like this

service.route({
    origin: latlng_mtlsheloc[0],
    destination: latlng_mtlsheloc[latlng_mtlsheloc.length - 1],
    waypoints:waypts_mtlsheloc,
    travelMode: google.maps.DirectionsTravelMode.DRIVING
}, function(result, status) {
        console.log(status)
        if (status == google.maps.DirectionsStatus.OK) {
        path = path.concat(result.routes[0].overview_path);
        line_mtlsheloc.setPath(result.routes[0].overview_path);
    }
});

But it gives me an error "Error in property [waypoint]", I've tried different methods of writing down the location, but can't seem to find the right one.

解决方案

To use a latitude and longitude as a waypoint, it must be a google.maps.LatLng object (the documentation says a string or a LatLng; string is an address, LatLng is geographic coordinates)

waypts_mtlsheloc.push({
    location: new google.maps.LatLng(45.658197,-73.636333),
    stopover: true
}) 

Working Example

jsfiddle

code snippet:

var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var map;

function initialize() {
  directionsDisplay = new google.maps.DirectionsRenderer();
  var chicago = new google.maps.LatLng(41.850033, -87.6500523);
  var myOptions = {
    zoom: 6,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    center: chicago
  }
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  directionsDisplay.setMap(map);
  calcRoute();
}

function calcRoute() {

  var request = {
    origin: "1521 NW 54th St, Seattle, WA 98107 ",
    destination: "San Diego, CA",
    waypoints: [{
      location: new google.maps.LatLng(42.496403, -124.413128),
      stopover: false
    }],
    optimizeWaypoints: true,
    travelMode: google.maps.DirectionsTravelMode.WALKING
  };
  directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(response);
      var route = response.routes[0];
      var summaryPanel = document.getElementById("directions_panel");
      summaryPanel.innerHTML = "";
      // For each route, display summary information.
      for (var i = 0; i < route.legs.length; i++) {
        var routeSegment = i + 1;
        summaryPanel.innerHTML += "<b>Route Segment: " + routeSegment + "</b><br />";
        summaryPanel.innerHTML += route.legs[i].start_address + " to ";
        summaryPanel.innerHTML += route.legs[i].end_address + "<br />";
        summaryPanel.innerHTML += route.legs[i].distance.text + "<br /><br />";
      }
    } else {
      alert("directions response " + status);
    }
  });
}

google.maps.event.addDomListener(window, "load", initialize);

html {
  height: 100%
}

body {
  height: 100%;
  margin: 0px;
  padding: 0px
}

<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map_canvas" style="float:left;width:70%;height:100%;"></div>
<div id="control_panel" style="float:right;width:30%;text-align:left;padding-top:20px">
  <div id="directions_panel" style="margin:20px;background-color:#FFEE77;"></div>
</div>

这篇关于以经度/纬度为路线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆