0

マップ上にマーカーがない場合にマーカーを追加するか、元のマーカーを削除して新しいマーカーを追加して置き換える関数を作成しました。ただし、スクリプトの最初の部分を正常に追加して、マップにマーカーを追加できます。ただし、元のマーカーを削除することはできず、マップを再度クリックしても新しいマーカーを追加できませんでした。誰が問題が何であるかを提案できますか?

/*Create a listener to record the Click event of the google map and define it as the starting point (i.e. Origin in Google Direction
service*/
google.maps.event.addListener(map, 'click', function(event) {
  if (origin == null) {
    origin = event.latLng;

    lat = origin.lat();
    lng = origin.lng();
    UpdateLatLng();  

    var startimage = 'images/Start4.png';
    StartMarker = new google.maps.Marker({
         map: map,
         position: origin,
         icon: startimage
     });
  } else {
 //Relocate the Starting point and assign the new position to Textbox
    alert ("The starting point was relocated on screen"); 
    StartMarker.setMap(null);
    directionsDisplay.setMap(null);
    directionsDisplay.setPanel(null);
    directionsDisplay.setDirections({routes: []});
    var origin = event.latLng;  
    lat = origin.lat();
    lng = origin.lng();
    UpdateLatLng(); 
    var startimage = 'images/Start4.png';
    StartMarker = new google.maps.Marker({
         map: map,
         position: origin,
         icon: startimage
     });
    } 
}); 
4

2 に答える 2

0

これは私のために働く:

var StartMarker = null;
/*Create a listener to record the Click event of the google map and define it as the starting point (i.e. Origin in Google Direction
service*/
google.maps.event.addListener(map, 'click', function(event) {
  if (!StartMarker) {
    origin = event.latLng;
    lat = origin.lat();
    lng = origin.lng();

    StartMarker = new google.maps.Marker({
         map: map,
         position: origin
     });
  } else {
 //Relocate the Starting point and assign the new position to Textbox
    alert ("The starting point was relocated on screen"); 
    StartMarker.setMap(null);
    var origin = event.latLng;  
    lat = origin.lat();
    lng = origin.lng();
    StartMarker = new google.maps.Marker({
         map: map,
         position: origin
     });
    } 
}); 

実施例

于 2013-05-12T14:11:22.437 に答える
0

既存のMarkerようなものを使用してみてください:

// Will change the poisition
StartMarker.setPosition(origin); 
// Will change the Icon
StartMarker.setIcon(startimage);
于 2013-05-12T08:46:25.763 に答える