Google Maps v3 在两点之间创建路线

Posted

技术标签:

【中文标题】Google Maps v3 在两点之间创建路线【英文标题】:Google Maps v3 Create routes between two points 【发布时间】:2013-01-11 10:53:19 【问题描述】:

我正在使用 Google Maps API 开发网络应用程序。我正在尝试在两点之间创建一条路线,但由于某种原因,我还没有弄清楚如何创建它。以下是我的代码,如果我遗漏了什么,请告诉我。谢谢。

<script>
var Center=new google.maps.LatLng(18.210885,-67.140884);
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;

function initialize() 
  directionsDisplay = new google.maps.DirectionsRenderer();
var properties = 
    center:Center,
    zoom:20,
    mapTypeId:google.maps.MapTypeId.SATELLITE
;

map=new google.maps.Map(document.getElementById("map"), properties);
directionsDisplay.setMap(map);

var marker=new google.maps.Marker(
position:Center,
animation:google.maps.Animation.BOUNCE,
);

marker.setMap(map);



function Route() 

var start = new google.maps.LatLng(18.210885,-67.140884);
var end =new google.maps.latLng(18.211685,-67.141684);
var request = 
origin:start,
destination:end,
travelMode: google.maps.TravelMode.WALKING
 ;
 directionsService.route(request, function(result, status) 
if (status == google.maps.DirectionsStatus.OK) 
  directionsDisplay.setDirections(result);

);
 

google.maps.event.addDomListener(window,'load',initialize);
</script>

【问题讨论】:

你在哪里调用函数Route()?我没有看到它在您的代码中的任何地方被调用。 【参考方案1】:

如果我满足以下条件,它对我有用:

    调用路由函数

    改变:

    var end =new google.maps.latLng(18.211685,-67.141684);
    

到:

    var end =new google.maps.LatLng(18.211685,-67.141684);

javascript区分大小写,浏览器在javascript控制台报错)

working version

代码sn-p:

var Center = new google.maps.LatLng(18.210885, -67.140884);
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;

function initialize() 
  directionsDisplay = new google.maps.DirectionsRenderer();
  var properties = 
    center: Center,
    zoom: 20,
    mapTypeId: google.maps.MapTypeId.SATELLITE
  ;

  map = new google.maps.Map(document.getElementById("map"), properties);
  directionsDisplay.setMap(map);

  var marker = new google.maps.Marker(
    position: Center,
    animation: google.maps.Animation.BOUNCE,
  );

  marker.setMap(map);
  Route();


function Route() 

  var start = new google.maps.LatLng(18.210885, -67.140884);
  var end = new google.maps.LatLng(18.211685, -67.141684);
  var request = 
    origin: start,
    destination: end,
    travelMode: google.maps.TravelMode.WALKING
  ;
  directionsService.route(request, function(result, status) 
    if (status == google.maps.DirectionsStatus.OK) 
      directionsDisplay.setDirections(result);
     else 
      alert("couldn't get directions:" + status);
    
  );


google.maps.event.addDomListener(window, 'load', initialize);
html,
body,
#map 
  margin: 0;
  padding: 0;
  height: 100%;
<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<div id="map"></div>

【讨论】:

以上是关于Google Maps v3 在两点之间创建路线的主要内容,如果未能解决你的问题,请参考以下文章

在 google maps api v3 中隐藏方向服务中的标记

如何在 Google Maps API 中的两个标记之间绘制路线?

如何在 Google Maps API 中沿起点和终点之间的路线获取地点(例如加油站)

Google Maps API V3 - 边界内最近的路线

移动应用程序上的 Google 路线,两点之间的步行距离 - 最小化响应

Google Maps API 版本差异