私はグーグルマッププロジェクトを作成していて、それをクリックするルートを作成する必要があります。
私のプロジェクトには、事前定義されたlatとlngを持つ2つのポイントがあり、ポイントAとBの開始と終了を自分で描画し、機能を失わないようにします。
クリックしてルートを描くことができる別のプロジェクトを作成しましたが、マーカーがなく、ドラッグガブルではありません。これは完全なコードを含む実際のプロジェクトであり、ここに私の指示のみを含む短いコードを投稿します。
最初にポイントAにクリックし、2番目にポイントBにクリックすると、プロジェクトがリンクされているように、それらをドラッグできるようになります。
function goma()
{
var mapDiv = document.getElementById('mappy');
var mapOptions = {
zoom: 12,
center: new google.maps.LatLng(-23.563594, -46.654239),
mapTypeId : google.maps.MapTypeId.ROADMAP
}
pode ser ROADMAP, SATELLITE, HYBRID, TERRAIN
map = new google.maps.Map( mapDiv, mapOptions );
//Render route, etc.
ren = new google.maps.DirectionsRenderer( {'draggable':true} );
ren.setMap(map);
ren.setPanel(document.getElementById("directionsPanel"));
ser = new google.maps.DirectionsService();
//Create the route
ser.route({ 'origin': new google.maps.LatLng(-23.563594, -46.654129), 'destination': new google.maps.LatLng(
-23.563672, -46.640396), 'travelMode': google.maps.DirectionsTravelMode.DRIVING},function(res,sts) {
if(sts=='OK')ren.setDirections(res);
})
}
ここでコードを更新しています。wayAのみを実行しました。これは最初のウェイポイントです。2番目はlatLngが事前定義されており、クリックするとlatLngが取得され、「origin」内に配置されます。
google.maps.event.addListener(map, "click", function(event) {
wayA = new google.maps.Marker({
position: event.latLng,
map: map
});
});
ren = new google.maps.DirectionsRenderer( {'draggable':true} );
ren.setMap(map);
ren.setPanel(document.getElementById("directionsPanel"));
ser = new google.maps.DirectionsService();
ser.route({ 'origin': wayA, 'destination': new google.maps.LatLng(
-23.563672, -46.640396), 'travelMode': google.maps.DirectionsTravelMode.DRIVING},function(res,sts) {
if(sts=='OK')ren.setDirections(res);
})