इससे निपटने के कई तरीके हैं, लेकिन मुझे आपको एक दृष्टिकोण दिखाने दो।
सबसे पहले, के स्थानों की एक सरणी (Google Maps API Tutorials से उधार) के साथ शुरू करते हैं:
var beaches = [
['Bondi Beach', -33.890542, 151.274856, 1],
['Coogee Beach', -33.923036, 151.259052, 1],
['Cronulla Beach', -34.028249, 151.157507, 2],
['Manly Beach', -33.800101, 151.287478, 2],
['Maroubra Beach', -33.950198, 151.259302, 2]
];
यह वास्तव में सरणियों की एक सरणी है। यह 5 ऑस्ट्रेलियाई समुद्र तटों का प्रतिनिधित्व करता है, और हमारे पास नाम, अक्षांश, देशांतर और श्रेणी है। इस मामले में श्रेणी सादगी के लिए सिर्फ एक संख्या है।
फिर यह महत्वपूर्ण है कि हम उन मार्करों का संदर्भ रखें जो हम बनाते हैं। ऐसा करने के लिए, हम एक markers
सरणी जहां हम एक नए मार्कर की दुकान का उपयोग कर सकते हैं, और हम भी अपनी श्रेणी आईडी के साथ प्रत्येक मार्कर वस्तु को बढ़ाने कर सकते हैं:
var markers = [];
var i, newMarker;
for (i = 0; i < beaches.length; i++) {
newMarker = new google.maps.Marker({
position: new google.maps.LatLng(beaches[i][1], beaches[i][2]),
map: map,
title: beaches[i][0]
});
newMarker.category = beaches[i][3];
newMarker.setVisible(false);
markers.push(newMarker);
}
अंत में, जब हम मार्करों दिखाने की जरूरत है, हम बस कर सकते हैं markers
सरणी पर फिर से शुरू करें, और setVisible()
विधि को किस श्रेणी के अनुसार हम दिखाना चाहते हैं, उसके अनुसार कॉल करें।
आप निम्न पूर्ण उदाहरण की जाँच कर सकते हैं: ऊपर के उदाहरण से
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Marker Categories</title>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false"></script>
</head>
<body>
<div id="map" style="width: 400px; height: 300px;"></div>
<input type="button" value="Show Group 1" onclick="displayMarkers(1);">
<input type="button" value="Show Group 2" onclick="displayMarkers(2);">
<script type="text/javascript">
var beaches = [
['Bondi Beach', -33.890542, 151.274856, 1],
['Coogee Beach', -33.923036, 151.259052, 1],
['Cronulla Beach', -34.028249, 151.157507, 2],
['Manly Beach', -33.800101, 151.287478, 2],
['Maroubra Beach', -33.950198, 151.259302, 2]
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(-33.88, 151.28),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var markers = [];
var i, newMarker;
for (i = 0; i < beaches.length; i++) {
newMarker = new google.maps.Marker({
position: new google.maps.LatLng(beaches[i][1], beaches[i][2]),
map: map,
title: beaches[i][0]
});
newMarker.category = beaches[i][3];
newMarker.setVisible(false);
markers.push(newMarker);
}
function displayMarkers(category) {
var i;
for (i = 0; i < markers.length; i++) {
if (markers[i].category === category) {
markers[i].setVisible(true);
}
else {
markers[i].setVisible(false);
}
}
}
</script>
</body>
</html>
स्क्रीनशॉट, "शो समूह 2" बटन पर क्लिक करने के बाद:
Google Maps JavaScript API v3 Example: Marker Categories http://img535.imageshack.us/img535/8485/markercat.jpg
समुद्र तट कोड इस फिक्स के साथ काम करता है: स्थिति: नया google.maps.LatLng (समुद्र तट [i] [1], समुद्र तट [i] [2]), – dalton
मैंने ऐसा कुछ नहीं किया (मार्कर दिखा रहा/छुपा रहा है) इसलिए मैं एक उदाहरण के लिए एक लिंक पोस्ट कर सकता हूं http://econym.org.uk/gmap/example_categories.htm – robertbasic