2012-03-25 11 views
1

ist es möglich, die Markierungen nicht horizontal zu wiederholen, da ich nur möchte, dass der Marker auf der Karte angezeigt wird, und ich meine Karte nicht wiederhole. Wie man hier sehen kann, ist es sehr ärgerlich: http://lsres.com/playerdb/test2.phpNicht wiederholende Markierungen in Google Maps API V3 (JS)

ich zur Zeit meiner Karte auf diese Weise initialisieren:

var map; 
    var mapTypeOptions = { 
    getTileUrl: function(coord, zoom) { if (coord.y < 0 || coord.y >= 1 << zoom || coord.x < 0 || coord.x >= 1 << zoom){ return "sam/map/samap_a.jpg"; } return "sam/map/samap_"+zoom+"_"+coord.x+"_"+coord.y+".jpg"; }, 
    tileSize: new google.maps.Size(256, 256), 
    maxZoom: 2, 
    minZoom: 1, 
    name: "Map", 
    opacity: 1.0, 
    isPng: false, 
    alt: "Map" 
    }; 

    var satTypeOptions = { 
    getTileUrl: function(coord, zoom) { if (coord.y < 0 || coord.y >= 1 << zoom || coord.x < 0 || coord.x >= 1 << zoom){ return "sam/map/samap_a.jpg"; } return "sam/sat/samap_"+zoom+"_"+coord.x+"_"+coord.y+".jpg"; }, 
    tileSize: new google.maps.Size(256, 256), 
    maxZoom: 2, 
    minZoom: 1, 
    name: "Satelite" 
    }; 
    var mapMapType = new google.maps.ImageMapType(mapTypeOptions); 
    var satMapType = new google.maps.ImageMapType(satTypeOptions); 

    function initialize() { 
    var myLatlng = new google.maps.LatLng(0, 0); 
    var myOptions = { 
     center: myLatlng, 
     zoom: 1, 
     streetViewControl: false, 
     panControl: false, 
     zoomControl: false, 
     scaleControl: false, 
     mapTypeControlOptions: { 
     mapTypeIds: ["map", "sat"] 
     } 
    }; 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    map.mapTypes.set('map', mapMapType); 
    map.mapTypes.set('sat', satMapType);  
    map.setMapTypeId('map'); 

    } 

Vielen Dank im Voraus!

Antwort

1

Wenn Marker-Objekt erstellen, auf false gesetzt optimiert, zum Beispiel:

var marker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    title: 'Hello World!', 
    optimized: false 
}); 
+0

Alternativ kann die Einstellung "ziehbar: wahr" auch verwendet werden, aber dann ist der Marker ziehbar –

0

Dies liegt daran, dass die Karte in den Zoom-Stufen 1 und 2 wiederholt werden muss, um keinen Leerraum zu haben. Das Gleiche passiert bei maps.google.com. Sie können stattdessen die Zoomstufen 3 und 4 verwenden. Sie müssen Ihren Code ändern, damit der Inhalt mehr blaue Lücken enthält, aber die Karte wird nicht mehr wiederholt. Und die Kartendetails werden immer noch gut aussehen. Ist das sinnvoll?

+0

Können Sie auf diese Lösung ein wenig erweitern? Ich verstehe, dass Sie sagen, dass Sie im Grunde ein paar der Grenzfliesen zu einem blauen Füllstoff machen, aber wie würden Sie das tun? Wie würden Sie wählen, welche Kacheln blau sind, wenn Sie die x, y Koordinaten einer beliebigen gewünschten Kachel angeben? –

0

gibt es eine Technik, die helfen könnte, es von dieser Website ist, "Range Limiting"

http://econym.org.uk/gmap/range.htm

Es ist in V2, so dass ich zusammen eine V3 jsfiddle hier.

http://jsfiddle.net/44e6y/1/

Sie verlassen nun die Karte sehen nicht allzu weit entfernt vom Ausgangspunkt angezeigt werden soll. Das heißt, Sie können die Karte nicht über vordefinierte Grenzen hinaus ziehen.

Sie müssen jedoch den sichtbaren Bereich verkleinern, wenn Sie diese Methode wählen (dies wirkt sich nicht auf die wiederholenden Markierungen aus).

Verwandte Themen