如何使用谷歌道路api与折线

时间:2016-01-25 11:05:37

标签: javascript jquery google-maps-api-3 google-roads-api

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script
src="http://maps.googleapis.com/maps/api/js">
</script>

<script>
var snappedCoordinates = [];
var placeIdArray = [];
var polylines = [];
function initialize()
{
var mapProp = {
  center:{lat: 13.0342, lng: 80.2301},
  zoom:14,
  mapTypeId:google.maps.MapTypeId.ROADMAP
  };

var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);

var myTrip=[{lat: 13.0342, lng: 80.2301},{lat:13.0396077,lng:80.2457392}];
var path = myTrip;
polylines.push(myTrip);
placeIdArray = [];
runSnapToRoad(path);

function drawSnappedPolyline() {
    var flightPath=new google.maps.Polyline({
          path:myTrip,
          strokeColor:"#0000FF",
          strokeOpacity:0.8,
          strokeWeight:2
          });

        flightPath.setMap(map);
        polylines.push(flightPath);
}

function runSnapToRoad(path) {
    var pathValues = [];
      for (var i = 0; i < path.getLength(); i++) {
        pathValues.push(path.getAt(i).toUrlValue());
      }

      $.get('https://roads.googleapis.com/v1/snapToRoads', {
        interpolate: true,
        key: apiKey,
        path: pathValues.join('|')
      }, function(data) {
        processSnapToRoadResponse(data);
        drawSnappedPolyline();
      });
}


function processSnapToRoadResponse(data) {
      snappedCoordinates = [];
      placeIdArray = [];
      for (var i = 0; i < data.snappedPoints.length; i++) {
        var latlng = new google.maps.LatLng(
            data.snappedPoints[i].location.latitude,
            data.snappedPoints[i].location.longitude);
        snappedCoordinates.push(latlng);
        placeIdArray.push(data.snappedPoints[i].placeId);
      }
    }

}

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

<body>
<div id="googleMap" style="width:500px;height:380px;"></div>
</body>
</html>

这是我的google road api的代码我得到了中央地图但是路api不工作,我给了两点lat,lng如何确定地图为道路api我的exaction链接是https://developers.google.com/maps/documentation/roads/inspector如何集成ployline在我的代码中

1 个答案:

答案 0 :(得分:0)

我认为您的代码中缺少var apiKey = 'YOUR_API_KEY';

使用Android API:

  

要使用Google Maps Android API,您必须在Google Developers Console上注册您的应用项目,并获取可以添加到您的应用中的Google API密钥。

按照以下steps获取API密钥:

  1. 转到Google Developers Console
  2. 创建或选择项目。
  3. 点击继续以启用API。
  4. 转到凭据以获取 Android密钥并设置API凭据。
    注意:如果您有现有的 Android密钥,则可以使用该密钥。
  5. 在出现的对话框中,输入应用的SHA-1指纹和包名称 例如:
    BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75 com.example.android.mapexample

  6. 您的新Android密钥会显示在项目的API密钥列表中。 API密钥是一串字符,如下所示:
    AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

  7. 使用JavaScript API:

      

    所有JavaScript API应用程序都需要身份验证。

    按照以下steps获取API密钥:

    1. 转到Google Developers Console
    2. 创建或选择项目。
    3. 点击继续以启用API。
    4. 凭据页面上,获取浏览器密钥(并设置API凭据)。
      注意:如果您有现有的浏览器密钥,则可以使用该密钥。
    5. 为防止配额被盗,secure your API key following these best practices
    6. (可选)启用结算功能。有关详细信息,请参阅Usage Limits