如何使用lat long作为参数捕捉到道路

时间:2016-01-11 07:55:48

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

Snaptoroad Google API

我遇到的问题很简单但对我来说真的很困难 刚刚开始学习Javascript的新手学生,我想 使用简单的Google Map API启动我的第一个项目,以捕捉一组坐标 (约100~200点)到道路。

在Google API页面中提供的代码中,它显示了包含工具栏,线条抽屉和地图的地图。在绘制线后,地图会自动将该线捕捉到道路上。

所以现在,我想要的不是画线,而是输入lat和long来生成相应的快速路。我需要在代码中删除什么参数以及如何向Google输入参数?

我所做的就是创建一个文件阅读器,读取存储在本地驱动器中的文本文件。

document.getElementById('file').onchange = function(){

var file = this.files[0];

var reader = new FileReader();
reader.onload = function(progressEvent){

var lines = this.result.split('\n');
for(var line = 0; line < lines.length; line++){
  //alert(lines[line]);
  var split = [];
  split = lines[line].split(',');
  window.xcoord.push(split[0]);
  window.ycoord.push(split[1]);}
}
reader.readAsText(file); }; 

将坐标加载到xcoord和ycoord数组后,我想创建一个按钮,在点击后,它会生成地图和捕捉线。 可能类似于:

document.getElementById('button').onclick = 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();
getAndDrawSpeedLimits();});}

在函数runSnapToRoad中输入'path'需要哪些参数,另外, 在示例中可以删除哪些无用的代码?请帮助我,我知道我有很多东西需要学习。 (我已经挣扎了几天,因为没有任何类似的问题/例子可以找到),谢谢 非常!!

1 个答案:

答案 0 :(得分:0)

我已经设法通过使用带有php的while循环连接字符串来解决它。

<?php
$stringJoin = "";
$index = 0;
$handle = fopen($_GET['fileName'], "r");
if ($handle) {
  while (($line = fgets($handle)) !== false) {
      $index++;
      if ($index == 99) {
        break;
      }
      $stringJoin .= trim($line)."|";
  }
  fclose($handle); }
  echo $index;
  echo "<br>";
  $stringJoin = substr($stringJoin, 0, -1);
  echo $stringJoin;?> 

并输入如下:

path: <?php echo '"'.$stringJoin.'"';?>

并且图表完美地绘制。