dpbv85276 2014-07-21 20:03
浏览 33

使用Google Maps API V3构建坐标数组

I have searched high and low, found some great solutions....but for some reason they do not work for me.

Basically on a div hover event I want to draw a polyline based on the coordinates geo coded and retrieved by database. Now, the console appears to display the array elements fine, but I do think this is the problems I can't find. I think I am passing an incorrectly constructed array to create a LatLng object.

So here is my map:

wgmpmap = new google.maps.Map(document.getElementById("wgmpmap"), mapOptions);

Here is my function:

function highlightRoute(zip,locationId){
 jQuery.ajax({    
    type: "GET",
    url: "goGetRoute.php?location_id=" + locationId + "&zip=" +zip,             
    dataType: "text",   //expect html to be returned                
    success: function(response){ 
        var drivePathCoords = [];
        var tmpCoords = response.split("|");
        for (i = 0; i < tmpCoords.length; i++) {
            var tmpLatLng = tmpCoords[i].split(",");
            drivePathCoords.push(new google.maps.LatLng(tmpLatLng[0], tmpLatLng[1]));
        }
        console.log(drivePathCoords.toString());
        var drivePath = new google.maps.Polyline({
            path: drivePathCoords,
            geodesic: true,
            strokeColor: '#008457',
            strokeOpacity: 1.0,
            strokeWeight: 2
        });
        drivePath.setMap(wgmpmap);
    }//end success function
}); //end ajax call
}

Here is the PHP script that AJAX sends a request to (only interested in the first route):

 /////First geocode given zipcode
$tmpZip =  json_decode(file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=$_GET[zip]"));
$tmpZipLat = $tmpZip->results[0]->geometry->location->lat;
$tmpZipLng = $tmpZip->results[0]->geometry->location->lng;
$fromLatLng = "$tmpZipLat,$tmpZipLng";

$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'pass';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql');


mysql_select_db("myDB",$conn);
$locMatchesQuery = mysql_query("SELECT location_latitude, location_longitude FROM wp_map_locations WHERE location_id = '$_GET[location_id]'");
if(mysql_num_rows($locMatchesQuery) != 0){
     $rowLocation =  mysql_fetch_array($locMatchesQuery);
     $toLatLng = "$rowLocation[location_latitude],$rowLocation[location_longitude]";


         $outString = "";
         $tmp =  json_decode(file_get_contents("https://maps.googleapis.com/maps/api/directions/json?origin=$fromLatLng&destination=$toLatLng&mode=driving&alternatives=false&units=imperial"));
        foreach($tmp->routes[0]->legs[0]->steps as $step){
            $tmpLat = $step->start_location->lat;
            $tmpLng = $step->start_location->lng;
            $outString .= "$tmpLat,$tmpLng|";
        }       

    echo rtrim($outString, "|");


 }//End If
 else{

 }//End Else
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 求帮我调试一下freefem代码
    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图