2013-06-19 3 views
6

मैंने अपने मानचित्र पर मार्कर क्लस्टरर जोड़ने के लिए लाइब्रेरी और यूट्यूब मार्गदर्शिका का पालन किया लेकिन मुझे समस्या मिली।Google Map API V3- MarkerClusterer अपरिभाषित

MarkerClusterer undefined 

मैंने मार्करक्लस्टर को गाइड में शो के रूप में परिभाषित किया है, लेकिन अभी भी उपरोक्त त्रुटि मिली है। नीचे मेरा कोड

<!DOCTYPE html> 
<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemasmicrosoft- 
com:vml"> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/> 
<meta charset="UTF-8" /> 
<title>Ma Page de Google Maps V3</title> 
<style> 
     html, body, #map_canvas { 
    margin: 3; 
    padding: 3; 
    height: 100%; 
    } 
</style> 
<style type="text/css"> 
    .tooltip { 
    background-color:#ffffff; 
    font-weight:bold; 
    border:2px #006699 solid; 
    width:150px} 
</style> 
<script src="http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 
<script src="http://www.google.com/jsapi"></script> 
<script src="../src/data.json" type="text/javascript"></script> 
<script type="text/javascript"> 
    var script = '<script type="text/javascript" src="../src/markerclusterer'; 
    if (document.location.search.indexOf('compiled') !== -1) { 
    script += '_compiled'; 
    } 
    script += '.js"><' + '/script>'; 
    document.write(script); 
</script> 
<script> 
var trace_markers= []; 
var markerCluster= null; 
function Trace_Pin(Lat, Long, immat, type, site, vitesse, date) 
{ 
var image_trace = new google.maps.MarkerImage('http://maps.google.com/mapfiles/kml/pal3/icon61.png', 
    new google.maps.Size(32, 32), 
    new google.maps.Point(0,0), 
    new google.maps.Point(16, 16)); 

    var vehlatlng = new google.maps.LatLng(Lat, Long) ; 
    var trace_marker = new google.maps.Marker({ 
    position: vehlatlng, 
    icon: image_trace }); 
    trace_marker.tooltip_html = '<div class="tooltip">' + 'Date : ' + date + '<br>' + 'Vitesse : ' + vitesse + ' km/h' + '<br>' + '<\/div>';  
    trace_markers.push(trace_marker); 
    markerCluster = new MarkerClusterer(map, trace_markers); 
    Liste_Points.push(trace_marker.getPosition()); 
    TraceBounds.extend(trace_marker.position); 
    } 
</script> 

मैंने गलत कहां किया?

+0

क्या आप वाकई अपने markerclusterer.js/markerclusterer_compiled.js फ़ाइल को सही तरीके से बुलाया जा रहा है? क्या आपको MarkerClusterer क्लास का संदर्भ देने से पहले इसे शुरू करने के लिए कुछ भी करने की ज़रूरत है? – duncan

+0

इसके अलावा, आप Trace_Pin फ़ंक्शन कहां से कह रहे हैं? यह इस कोड से स्पष्ट नहीं है - क्या आपको शायद उस फ़ंक्शन को कॉल करने का प्रयास करने से पहले मार्करक्लस्टर जेएस फ़ाइल को लोड करने के लिए प्रतीक्षा करने के लिए समायोजित करने की आवश्यकता है? – duncan

+1

मुझे पता चला कि मुझे google लाइब्रेरी, [http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js से markerclusterer.js डाउनलोड करने की आवश्यकता है और इसे सर्वर पर अपलोड करें, फिर इसे '' में जोड़ें और वह शोल समस्या को हल करता है। मदद के लिए धन्यवाद :) – dswong

उत्तर

17

मुझे पता चला कि मुझे google लाइब्रेरी, http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js से markerclusterer.js डाउनलोड करने और सर्वर पर अपलोड करने की आवश्यकता है, फिर बस इसे जोड़ें और समस्या को हल करना चाहिए। :)

सहायता के लिए धन्यवाद की जगह इस

<script src="http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 
<script src="http://www.google.com/jsapi"></script> 
<script src="../src/data.json" type="text/javascript"></script> 
<script type="text/javascript"> 
var script = '<script type="text/javascript" src="../src/markerclusterer'; 
if (document.location.search.indexOf('compiled') !== -1) { 
    script += '_compiled'; 
} 
script += '.js"><' + '/script>'; 
document.write(script); 
</script> 
साथ

इस

<script src="http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 
<script src="markerclusterer.js" type="text/javascript"></script> 
+0

यह इसे ठीक करता है, लेकिन क्या कोई इस स्क्रिप्ट को लोड करने के पीछे असीमित समस्या को समझा सकता है? क्योंकि कभी-कभी ताज़ा करने पर यह काम नहीं करेगा, लेकिन कैश को ताज़ा करना हमेशा काम करेगा। – Serey

3

मैं सिर्फ अपनी सूची में मार्कर क्लस्टर प्लस मणि को जोड़ कर उसे काम करना शुरू किया!

अपने Gemfile में, इस पंक्ति जोड़ें: के लिए निम्न जोड़कर

मणि 'markerclustererplus-रेलों' आप इसे शामिल कर सकते हैं अपने जावास्क्रिप्ट फ़ाइल:

// = आवश्यकता markerclusterer

संदर्भ : https://github.com/RogerE/markerclustererplus-rails

+0

आपके उत्तर के लिए धन्यवाद लेकिन मैं अब परियोजना पर काम नहीं कर रहा हूं। हॊ गया। आपका दिन अच्छा रहे। – dswong

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