Google मानचित्र API काउंटी बहुभुज या राज्यों या देशों की किसी अन्य पूर्वनिर्धारित सीमा प्रदान नहीं करता है। इसलिए यहां मुख्य मुद्दा बहुभुज डेटा प्राप्त कर रहा है।
गूगल मैप्स एपीआई पर एक बहुभुज LatLng
ऑब्जेक्ट की श्रृंखला का निर्माण (आप v3 एपीआई का उपयोग कर रहे हैं यह सोचते हैं) द्वारा परिभाषित किया गया है:
var bermudaTriangleCoords = [
new google.maps.LatLng(25.774252, -80.190262),
new google.maps.LatLng(18.466465, -66.118292),
new google.maps.LatLng(32.321384, -64.757370),
new google.maps.LatLng(25.774252, -80.190262)
];
तो फिर तुम एक Polygon
वस्तु के निर्माण के लिए इस सरणी का प्रयोग करेंगे:
bermudaTriangle.setMap(map); // Assuming map is your google.maps.Map object
0123:
var bermudaTriangle = new google.maps.Polygon({
paths: bermudaTriangleCoords,
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35
});
और अंत में setMap()
विधि को फोन करके मानचित्र पर यह दिखाने
आप अपने Polygon
ऑब्जेक्ट के संदर्भ रखने, तो आप भी यह setMap()
विधि के लिए null
पास करके छिपा सकते हैं:
bermudaTriangle.setMap(null);
इसलिए आप प्रत्येक काउंटी के लिए एक संपत्ति के नाम के साथ एक जावास्क्रिप्ट वस्तु के निर्माण पर विचार कर सकता है। यह आपको सभी संग्रहों के माध्यम से पुन: प्रयास किए बिना, O(1) (निरंतर समय) में काउंटी के नाम से पॉलीगॉन ऑब्जेक्ट्स लाने की अनुमति देगा। निम्न उदाहरण पर विचार करें:
// Let's start with an empty object:
var counties = {
};
// Now let's add a county polygon:
counties['Alameda'] = new google.maps.Polygon({
paths: [
// This is not real data:
new google.maps.LatLng(25.774252, -80.190262),
new google.maps.LatLng(18.466465, -66.118292),
new google.maps.LatLng(32.321384, -64.757370),
new google.maps.LatLng(25.774252, -80.190262)
// ...
],
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000",
fillOpacity: 0.3'
});
// Next county:
counties['Alpine'] = new google.maps.Polygon({
// Same stuff
});
// And so on...
counties
वस्तु हमारे डेटा संग्रह किया जाएगा। "एल डोराडो" की खोज करता है आप बहुभुज बस प्रदर्शित हो सकते हैं इस प्रकार है:
counties['El Dorado'].setMap(map);
आपने पहले खोजा गया काउंटी के लिए एक संदर्भ रखने, तो आप भी setMap(null)
कॉल कर सकते हैं पिछले बहुभुज को छिपाने के लिए:
var userInput = 'El Dorado';
var latestSearch = null;
// Check if the county exists in our data store:
if (counties.hasOwnProperty(userInput)) {
// It does - So hide the previous polygon if there was one:
if (latestSearch) {
latestSearch.setMap(null);
}
// Show the polygon for the searched county:
latestSearch = counties[userInput].setMap(map);
}
else {
alert('Error: The ' + userInput + ' county was not found');
}
मुझे उम्मीद है कि यह आपको सही दिशा में जा रहा है।