2013-03-20 7 views
8

मुझे Google मानचित्र में मार्करों की एक सरणी बनाने में कुछ मदद की ज़रूरत है ताकि यह मार्कर को एक-एक करके बनाने के बजाय अधिक कुशल हो सके। मैंने निम्नलिखित की कोशिश की लेकिन यह काम नहीं करता है। किसी के पास सलाह है?Google मानचित्र में मार्करों का ऐरे जोड़ना

//create array to store a set of location 
var collection = new Array(); 

//a set of locations stored in array 
collection[0] = new google.maps.LatLng(13.742167701649997, 100.50721049308777); 
collection[1] = new google.maps.LatLng(13.74428, 100.5404525); 
collection[2] = new google.maps.LatLng(13.744108, 100.543098); 

var pointMarkerImage = new Array();//store image of marker in array 
var pointMarker = new Array();//store marker in array 

//create number of markers based on collection.length 
function setPoint(){ 
for(var i=0; i<collection.length; i++){ 

var pointMarkerImage[i] = new google.maps.MarkerImage('marker.png'); 
var pointMarker[i] = new google.maps.Marker({ 
     position: collection[i], 
     map: map, 
     icon: pointMarkerImage[i], 
     animation: google.maps.Animation.BOUNCE, 
     title: "collection"+ i 
    }); 

    google.maps.event.addListener(pointMarker[i], 'click', function() { 
      window.open("blog/page01.html","_blank","toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=yes, copyhistory=yes") 
      }; 
    ); 
    } 
} 
+0

क्या आप वाकई 'setPoint() 'का आह्वान कर रहे हैं? आप इस समारोह को कहां कहते हैं? –

+0

आपने लूप के बारे में सोचा नहीं है, आपको प्रत्येक सरणी अनुक्रमणिका के लिए एक नया latlng ऑब्जेक्ट बनाने की आवश्यकता नहीं है, आप केवल संख्या को स्टोर कर सकते हैं और इसके लिए (टिपिकल के लिए) {new google.map। (Lat [i]) } –

+0

जैसी कुछ टिप्पणियों के लिए धन्यवाद, मुझे नीचे एक उचित रूप देने के लिए पूरे कोड को पोस्ट करने की आवश्यकता हो सकती है .. – user2192094

उत्तर

3

मैं कुछ चीजों को देखने के: pointM पाश के लिए में

1), वर pointM ... बस होना चाहिए ... वर जोड़ने यह सेट आप पाश के लिए बाहर है की अनदेखी करता है ।

2) आपके पास एक है; एक समारोह के बाद जो चीजों को तोड़ रहा है।

इस प्रयास करें:

//create array to store a set of location 
var collection = new Array(); 

//a set of locations stored in array 
collection[0] = new google.maps.LatLng(13.742167701649997, 100.50721049308777); 
collection[1] = new google.maps.LatLng(13.74428, 100.5404525); 
collection[2] = new google.maps.LatLng(13.744108, 100.543098); 

var pointMarkerImage = new Array();//store image of marker in array 
var pointMarker = new Array();//store marker in array 

//create number of markers based on collection.length 
function setPoint(){ 
    for(var i=0; i<collection.length; i++){ 

    pointMarkerImage[i] = new google.maps.MarkerImage('marker.png'); 
    pointMarker[i] = new google.maps.Marker({ 
      position: collection[i], 
      map: map, 
      icon: pointMarkerImage[i], 
      animation: google.maps.Animation.BOUNCE, 
      title: "collection"+ i 
    }); 

    google.maps.event.addListener(pointMarker[i], 'click', function(){ 
     window.open("blog/page01.html","_blank","toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=yes, copyhistory=yes"); 
    } 
    ); 
    } 
} 
+0

आपकी प्रतिक्रिया के लिए धन्यवाद। यह एक लापरवाही गलती थी! यकीन नहीं है कि यह अभी भी क्यों काम नहीं कर रहा है। मैं एक बेहतर तस्वीर देने के लिए नीचे पूरा कोड पोस्ट करना चाहता हूं। – user2192094

25

यह मेरा सरल कोड है और यह ठीक काम करता है। जब आप मार्कर पर क्लिक करते हैं, तो वह उस मार्कर के स्थान के आधार पर क्रमशः जानकारी विंडो खोल देगा।

<script> 
var locations = [ 
    ['Title A', 3.180967,101.715546, 1], 
    ['Title B', 3.200848,101.616669, 2], 
    ['Title C', 3.147372,101.597443, 3], 
    ['Title D', 3.19125,101.710052, 4] 
]; 
var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 12, 
    center: new google.maps.LatLng(3.171368,101.653404), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

var infowindow = new google.maps.InfoWindow; 

var marker, i; 

for (i = 0; i < locations.length; i++) { 
    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
     map: map 
    }); 

    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
      infowindow.setContent(locations[i][0]); 
      infowindow.open(map, marker); 
     } 
    })(marker, i)); 
} 
</script> 

<div data-role="page" id="map_result"> 
    <div data-role="header" data-position="fixed"><h1>Multiple Marker</h1></div> 
    <div data-role="content" style="padding:0;"> 
     <div id="map"></div> 
    </div> 
</div> 
+1

वह फ़ंक्शन (i) फ़ंक्शन चीज़ लौटाना बहुत निफ्टी है। –

संबंधित मुद्दे