2016-10-21 6 views
-1

私はUberに似たようなアプリケーションを求めているので、マーカーを置いて現金を取り除くのに助けが必要です。問題は、私が前の位置に車が表示されたままになっていて、それを取り除き、新しいブランドを入れて動きの効果を与える方法を知っている。マーカーをきれいにする方法Googleマップ

マイ参照:

https://developers.google.com/maps/documentation/javascript/examples/icon-complex?hl=es-419

マイコード:

function initMap() { 
    var styledMap = new google.maps.StyledMapType(styles, { name: "Styled Map" }); 

    var mapOptions = { 
     zoom: 18, 
     center: new google.maps.LatLng(19.302286, -99.192976), 
     mapTypeControlOptions: { 
      mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style'] 
     } 
    }; 
    var map = new google.maps.Map(document.getElementById('map'), 
     mapOptions); 
    map.mapTypes.set('map_style', styledMap); 
    map.setMapTypeId('map_style'); 
    setInterval(function() { setMarkers(map); }, 5000); 
} 

var LAC1 = [ 
    19.3027874, 19.302775, 19.302708, 19.302647, 19.302601, 19.302537, 
    19.302513, 19.302472, 19.302444, 19.302397, 19.302353, 19.302332, 
    19.302298, 19.302283, 19.302265, 19.302270, 19.302190, 19.302186, 
    19.302198, 19.302268, 19.302334, 19.302449, 19.302506, 19.302659, 
    19.302870, 19.303052, 19.303217 
]; 
var LC1 = [ 
    -99.1872615, -99.187810, -99.188320, -99.188846, -99.189252, -99.189853, 
    -99.190115, -99.190555, -99.190870, -99.191272, -99.191633, -99.191913, 
    -99.192264, -99.192547, -99.192755, -99.192918, -99.193718, -99.194205, 
    -99.194586, -99.195342, -99.195847, -99.196445, -99.196624, -99.197140, 
    -99.197661, -99.198034, -99.198320 
]; 
var conT = 0; 

function setMarkers(map) { 
    if (conT < 27) { 
     var camiones = [ 
      ['Camion 1', LAC1[conT], LC1[conT], 1] 
     ]; 
     conT = conT + 1; 
    } else { 
     conT = null; 
     conT = 0; 
    } 
    var image = { 
     url: 'camion.png', 
     scaledSize: new google.maps.Size(70, 30) // scaled size 
    }; 
    var shape = { 
     coords: [1, 1, 1, 20, 18, 20, 18, 1] 
    }; 
    for (var i = 0; i < camiones.length; i++) { 

     var camionT = camiones[i]; 
     var marker = new google.maps.Marker({ 
      position: { lat: camionT[1], lng: camionT[2] }, 
      map: map, 
      icon: image, 
      shape: shape, 
      title: camionT[0], 
      zIndex: camionT[3] 
     }); 
    } 
} 

example image

+0

重複(http://stackoverflow.com/questions/32013032/ delete-google-maps-marker) – geocodezip

+0

[[前のマーカーを削除する]更新された緯度経度でマーカーを追加](http://stackoverflow.com/questions/32679672/remove-the-previous-marker-and-add-marker-in-the-updated-lat-lng) – geocodezip

+0

[ユーザーの移動に伴ってマーカーを1つ取得してその位置を更新する方法はありますか?](http://stackoverflow.com/questions/16870667/how-can-i-get-a-single-marker-to-update-its-ユーザーの動きとしての位置) – geocodezip

答えて

0

まず、あなたがマップに追加しながらsetMarkers内(、配列にあなたのマーカーを追加)。次に、これを使用します。

function setMapOnAll(map) { 
    for (var i = 0; i < markers.length; ++i) { 
     markers[i].setMap(map); 
    } 
    } 

setMapOnAll(null); 

間隔内にsetMarkersが呼び出されるたびに呼び出します。

その後、さらに移動して実際に移動したものだけを削除できます。 (配列内のマーカーと新しいマーカーの分析を介して)

0

マーカーを1つだけ必要とし、その位置を更新したい場合は、マーカーを一度作成してから移動します。

// if marker doesn't exist, create it 
if (!marker || !marker.setPosition) { 
    marker = new google.maps.Marker({ 
    position: { 
     lat: camionT[1], 
     lng: camionT[2] 
    }, 
    map: map, 
    title: camionT[0], 
    zIndex: camionT[3] 
    }); 
} else { 
// if marker already exists, move it 
    marker.setPosition({ 
    lat: camionT[1], 
    lng: camionT[2] 
    }); 
} 

proof of concept fiddle

コードスニペット:[Googleマップのマーカーを削除]の

function initMap() { 
 
    var mapOptions = { 
 
    zoom: 16, 
 
    center: new google.maps.LatLng(19.302286, -99.192976), 
 
    }; 
 
    var map = new google.maps.Map(document.getElementById('map'), 
 
    mapOptions); 
 
    setInterval(function() { 
 
    setMarkers(map); 
 
    }, 5000); 
 
} 
 

 
var LAC1 = [ 
 
    19.3027874, 19.302775, 19.302708, 19.302647, 19.302601, 19.302537, 
 
    19.302513, 19.302472, 19.302444, 19.302397, 19.302353, 19.302332, 
 
    19.302298, 19.302283, 19.302265, 19.302270, 19.302190, 19.302186, 
 
    19.302198, 19.302268, 19.302334, 19.302449, 19.302506, 19.302659, 
 
    19.302870, 19.303052, 19.303217 
 
]; 
 
var LC1 = [-99.1872615, -99.187810, -99.188320, -99.188846, -99.189252, -99.189853, -99.190115, -99.190555, -99.190870, -99.191272, -99.191633, -99.191913, -99.192264, -99.192547, -99.192755, -99.192918, -99.193718, -99.194205, -99.194586, -99.195342, -99.195847, -99.196445, -99.196624, -99.197140, -99.197661, -99.198034, -99.198320]; 
 
var conT = 0; 
 
var marker; 
 

 
function setMarkers(map) { 
 
    if (conT < 27) { 
 
    var camiones = [ 
 
     ['Camion 1', LAC1[conT], LC1[conT], 1] 
 
    ]; 
 
    conT = conT + 1; 
 
    } else { 
 
    conT = null; 
 
    conT = 0; 
 
    } 
 
    for (var i = 0; i < camiones.length; i++) { 
 

 
    var camionT = camiones[i]; 
 
    if (!marker || !marker.setPosition) { 
 
     marker = new google.maps.Marker({ 
 
     position: { 
 
      lat: camionT[1], 
 
      lng: camionT[2] 
 
     }, 
 
     map: map, 
 
     title: camionT[0], 
 
     zIndex: camionT[3] 
 
     }); 
 
    } else { 
 
     marker.setPosition({ 
 
     lat: camionT[1], 
 
     lng: camionT[2] 
 
     }); 
 
    } 
 
    } 
 
} 
 
google.maps.event.addDomListener(window, "load", initMap);
html, 
 
body, 
 
#map { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="map"></div>

+0

ありがとうございました。残念ですが、このツールを初めて使用しています。どうすればスコアを上げることができますか?私が絵に示したように、それは小さなトラックであり、路上を回って出現する必要がありますが、どのようにしてその効果を与えるかは分かりません。よろしく!私は、画像変数にパラメータ "rotation"を入れましたが、画像を動かさないので、私はそのようにしました。 | var imagen var image = { url: 'camion.png'、 rotation:27、// do not work scaledSize:新しいgoogle.maps.Size(70、30)、//縮尺されたサイズ 起源:新しいgoogle .maps.Point(0、0)、 アンカー:新しいgoogle.maps.Point(0、0)、 }; –

+0

それは別の質問です(重複があります、私はそれを前に見ました)。 – geocodezip

関連する問題