2015-04-27 6 views
0

Я хочу нарисовать фигуры с заданными координатами на картах Google. Но когда я пытаюсь таким образом: http://jsfiddle.net/zzhy/4auzbjd5/3/ рисует его, но не показывает в нужном месте. Как я могу это исправить?Google Maps показывает неправильное место

var coordinates = r[0].split(":"); 

var flightPlanCoordinates = new Array(); 

var bounds = new google.maps.LatLngBounds(); 

for(i=0;i<coordinates.length;i++) 

{ 
    var point =new google.maps.LatLng(coordinates[i].split(',')[0],coordinates[i].split(',')[1]); 

    bounds.extend(point); 

    flightPlanCoordinates.push(point); 
} 




var flightPath = new google.maps.Polyline({ 

path: flightPlanCoordinates, 

geodesic: true, 

strokeColor: '#FF0000', 

strokeOpacity: 1.0, 

strokeWeight: 2 

}); 



flightPath.setMap(map); 

map.fitBounds(bounds); 
console.log("flightPlanCoordinates:" + flightPlanCoordinates); 
console.log("bounds:" + bounds); 
+0

Ну, что координаты вы установив его? Полигон, который я вижу в JSFiddle, содержит координаты в Саудовской Аравии. Ваше начальное представление карты установлено где-то в Турции, но 'map.fitBounds (bounds);' переназначает это. – ceejayoz

+0

@ceejayoz вы можете проверить его по этой ссылке http://jsfiddle.net/zzhy/4auzbjd5/3/ – zzzzz

+0

Карта в этом JSfiddle отображается правильно. Что вы ожидали? Где вы ожидаете, что он появится? – ceejayoz

ответ

1

Как кажется, порядок массива элементов является longitude,latitude, но google.maps.LatLng ожидает latitude,longitude.

переключатель порядок аргументов:

var point =new google.maps.LatLng(coordinates[i].split(',')[1],coordinates[i].split(',')[0]); 

http://jsfiddle.net/4auzbjd5/4/

+0

спасибо, что он работает – zzzzz

Смежные вопросы