我想要一個由三幅圖像組成的地圖標記。兩個圖像在所有標記變化的情況下都是相同的。似乎沒有辦法在MarkerImage類中指定多個圖像。我能想到的唯一方法是將所有圖像繪製到畫布上,然後將其輸出爲MarkerImage類的png dataURL。這似乎是過度殺傷。是否可以使用多個圖像作爲Google Maps v3 MarkerImage?
4
A
回答
8
我不認爲這是可能的三個不同的圖像。
如果兩個圖像總是相同我想你可以將它們合併成一個並存儲在icon屬性中,然後在shadow屬性中使用變量圖像,或者反之亦然(圖標將始終位於影子)。你只需要操縱MarkerImage
對象的大小和位置。
工作示例:http://jsfiddle.net/mG4uz/1/
var image1 = new google.maps.MarkerImage(
'http://google-maps-icons.googlecode.com/files/sailboat-tourism.png',
new google.maps.Size(45, 90), //adjust size of image placeholder
new google.maps.Point(0, 0), //origin
new google.maps.Point(0, 25) //anchor point
);
var image2 = new google.maps.MarkerImage(
'http://google-maps-icons.googlecode.com/files/sailboat-tourism.png',
new google.maps.Size(45, 45),
new google.maps.Point(0, 0),
new google.maps.Point(0, 0)
);
var marker = new google.maps.Marker({
position: centerPosition,
map: map,
icon: image1,
shadow:image2
});
1
0
爲什麼大家都覺得這麼複雜?
該示例代碼也有點不幸選擇... shadow:image2 ??
一旦兩個圖像由VAR定義 - 他們是訪問 (可能需要進行全局定義,這取決於具體的應用是什麼)
如果你需要更多的圖標,只是他們推到一個數組。 ...
而且您需要爲每種可能的組合創建單獨的圖形...因爲MarkerImage對象只支持1個圖像和1個陰影。
0
您可以使用優秀的小型圖書館RichMarker。其文檔是here。
你甚至可以繼承它,並創建一個自定義的標記類,像這樣:
Ns.Marker = function(properties) {
RichMarker.call(this, properties);
this.setContent('<div class="three-images-marker">' +
properties.NsImage1 ? '<div class="marker-image-1"><img src="'+properties.NsImage1+'"/></div>' : '' +
properties.NsImage2 ? '<div class="marker-image-2"><img src="'+properties.NsImage2+'"/></div>' : '' +
properties.NsImage3 ? '<div class="marker-image-3"><img src="'+properties.NsImage3+'"/></div>'+
'</div>');
};
Ns.Marker.prototype = Object.create(RichMarker.prototype);
,然後用它是這樣的:
var gorgeousMarker = new Ns.Marker({
position: yourMarkerLatlng,
map: yourMap,
NsImage1: 'example.com/image1.png',
NsImage2: 'example.com/image2.png',
NsImage3: 'example.com/image3.png',
});
「Ns個」是無論你使用的命名空間,如果你這樣做。
從這裏開始,它的CSS工作,你可以定位圖像,只要你喜歡。
相關問題
- 1. Google Maps v3 MarkerImage&jQuery.Rotate
- 2. 是否可以使用jquery mobile和google maps v3製作多邊形?
- 3. Mapkit是否使用Google Maps API V3?
- 4. 是否可以使用Google填充的Google Maps API V3創建InfoWindow?
- 5. 是否可以在Google Maps API v3中製作自定義地圖?
- 6. 我可以使用Google Maps API v3操作KML嗎?
- 7. 是否可以使用圖標圖像作爲啓動圖像?
- 8. Xamarin是否支持Google Maps v3?
- 9. Google Maps V3多邊形繪圖
- 10. 使用複選框在Google Maps v3中切換多個圖像疊加層
- 11. Google Maps API v3 - 自定義多色圖標
- 12. Google地圖是否可以在地圖上繪製多個多邊形?
- 13. Google Maps API v3多個標記Infowindow
- 14. 是否可以在同一網站的多個頁面上使用Google Maps API?
- 15. 我是否可以暫時禁用Google Maps V3中的標記呈現功能?
- 16. 是否可以使用外部圖像作爲通知圖標?
- 17. 是否可以更改Google Maps繪圖管理器圖標?
- 18. 我可以在Google Maps API V3中獲得靜態地圖嗎?
- 19. fitbounds for google maps api v3不以我的多段線爲中心
- 20. angular-google-maps:是否可以使用addMarker函數?
- 21. 是否可以使用HTTP請求獲取Google Maps Directions?
- 22. Google Maps IOS SDK是否可以免費使用?
- 23. 是否可以使用Google Maps API創建「閃屏」屏幕?
- 24. 使用Google Maps API v3載入數千個針腳(多標記)
- 25. 使用Google Maps API v3添加多個標記
- 26. Google Maps API v3:使用IP地址的Geocoder.geocode多個LatLng
- 27. 在Google Maps v3上使用MySql和PHP加載多個航點
- 28. Google Maps API v2 vs Google Maps API v3?
- 29. google-maps-api-v3 getProjection
- 30. Google Maps API V3:fromContainerPixelToLatLng
當標記重疊時,使用變量圖像作爲陰影會產生問題,因爲所有圖標始終顯示在所有陰影之上。 我目前的方法將兩個靜態圖像組合成一個圖像,幸好沒有瘋狂的不透明度重疊問題,然後將兩個標記放在同一緯度/長度並增加z-索引。默認的重疊行爲被取消,並且在將3個標記置於相同位置時不起作用。 – yincrash
在這種情況下,畫布可能是最佳選擇。如果我遇到別的事情,我會讓你知道的。 –
google.maps.Marker的shadow屬性不再可用。 – geocodezip