-1
我在我的數據庫中有一組lat,我想在地圖上將它們顯示在連在一起的地圖上。我在數據庫中的一些經緯度不在路上,但我希望他們能夠像跟蹤應用程序一樣連接在一起。Google Snap to Roads
我的代碼顯示lats longs(座標),但不遵循道路或者座標不在路上。
這裏是我的代碼:
`function initialize() {
@foreach($track as $transac)
lati = {{$transac->latitude}};
lngi = {{$transac->longitude}};
@endforeach
var mapOptions = {
zoom: 17,
center: {lat: lati, lng: lngi}
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var locate = [
@foreach($transactions as $location)
['{{ $location->address }}<br> {{ $location->details }}', {{ $location->latitude }}, {{ $location->longitude }}],
@endforeach
];
var alltransaction = [
@foreach($alltransactions as $location)
['{{ $location->address }}<br> {{ $location->details }}', {{ $location->latitude }}, {{ $location->longitude }}],
@endforeach
];
var marker, i;
marker = new google.maps.Marker({
position: new google.maps.LatLng(lati,lngi),
map: map,
icon: 'images/car.jpg'
});
runSnapToRoad();
}
// Snap a user-created polyline to roads and draw the snapped path
function runSnapToRoad() {
var pathValues = [];
var pathVal = [];
var pathcon = [];
var utime;
@foreach($transactions as $transaction)
utime = '{{$transaction->updated_at}}';
@endforeach
@foreach($track as $transac)
if('{{$transac->updated_at}}' < utime)
pathVal.push("{{$transac->latitude}},{{$transac->longitude}}")
else
pathValues.push("{{$transac->latitude}},{{$transac->longitude}}");
@endforeach
pathcon.push(pathVal[pathVal.length-1]);
pathcon.push(pathValues[0]);
alert(pathcon);
$.get('https://roads.googleapis.com/v1/snapToRoads', {
interpolate: true,
key: apiKey,
path: pathValues.join('|')
}, function(data) {
processSnapToRoadResponse(data);
drawSnappedPolyline();
});
}
// Store snapped polyline returned by the snap-to-road method.
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);
}
}
// Draws the snapped polyline (after processing snap-to-road response).
function drawSnappedPolyline() {
var snappedPolyline = new google.maps.Polyline({
path: snappedCoordinates,
strokeColor: 'green',
strokeWeight: 3
});
snappedPolyline.setMap(map);
polylines.push(snappedPolyline);
}
$(window).load(initialize);
setInterval(function myfunction()
{
$('#btn').click();
}, 1000000);`