2012-03-21 16 views
11

क्या कोई तरीका है कि मैं Google मानचित्र में KMZ फ़ाइल का उपयोग कर सकता हूं? मेरी केएमएल फ़ाइल लगभग 10.7 एमबी है इसलिए यह Google मानचित्र पर लोड नहीं होती है। केएमजेड फ़ाइल लगभग 2 एमबी है। एकमात्र तरीका यह है कि मैं इसे कई केएमएल रखना चाहता हूं लेकिन यह बहुत अधिक काम है। मैं ऐसा कर सकता हूं, लेकिन क्या सोच रहा था कि क्या केएमजेड का उपयोग किया जा सकता है?Google मानचित्र में KMZ फ़ाइलों का उपयोग

धन्यवाद।

उत्तर

16

हाँ, आप मानचित्र API का उपयोग KMZ फ़ाइल निर्दिष्ट कर सकते हैं:

var kmzLayer = new google.maps.KmlLayer('http://www.kmzlinks.com/redirect.asp?id=110&file=PalmIsland%2Ekmz'); 
kmzLayer.setMap(map); 

अपने विशिष्ट मामले में, अपनी स्क्रिप्ट इस तरह दिखना चाहिए:

<script type="text/javascript"> 
    function initialize() { 
    var myOptions = { 
     center: new google.maps.LatLng(58.33, -98.52), 
     zoom: 11, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    var kmzLayer = new google.maps.KmlLayer('http://xeenat.com/energy/data.kmz'); 
    kmzLayer.setMap(map); 
    } 
</script> 

लेकिन - अपनी KML बहुत बड़ा है । भले ही यह केएमजेड के रूप में 2 एमबी तक संपीड़ित हो गया हो, फिर भी मैप्स को डिकंप्रेस्ड होने के बाद आकार दिखाई देता है, और आपके मामले में यह 10 एमबी से बड़ा है। इसे थोड़ा सा काटने का प्रयास करें - यदि आप अपने केएमजेड यूआरएल को उपरोक्त पहले स्निपेट में से एक के साथ बदलते हैं, तो यह काम करेगा। ऐसा लगता है कि आपको कई केएमएल फाइलों का उपयोग करने की आवश्यकता होगी। शायद आप Google धरती में केएमजेड लोड कर सकते हैं, फिर प्रत्येक प्रांत को अपनी फ़ाइल के रूप में सहेजें (पृथ्वी के "स्थान" टैब में फ़ोल्डर पर राइट-क्लिक करें, और इस रूप में सहेजें ...)

+0

, नक्शे के रूप में घोषित नहीं किया गया है: KMZ ठीक उसी तरह से आप एक KML फ़ाइल तुम भी एक ही समय नोटिस कुछ भी नहीं कैसे चर नाम और फ़ाइल एक्सटेंशन के लिए छोड़कर बदल जाता है पर दोनों सेट कर सकते हैं निर्दिष्ट करना होगा दाखिल एक वैश्विक चर, इसलिए जब आप इसे कॉल करते हैं, तो यह अपवाद के साथ आता है: Uncaught ReferenceError: मानचित्र परिभाषित नहीं किया गया है। आपको var मानचित्र डालना होगा; कार्य शुरू करने से पहले () { –

+0

ऐसा लगता है कि केएमजेड इस मामले में मदद नहीं करेगा - केएमजेड से असंपीड़ित केएमएल पर अभी भी एक आकार प्रतिबंध है: https://developers.google.com/kml/documentation/mapsSupport –

+1

@ माइक जेफरी मैं जावास्क्रिप्ट के लिए बहुत नया हूं, और मैंने जो किया है मैंने किया है लेकिन अब मेरा नक्शा लोड नहीं हो रहा है। मुझे वास्तव में Google मानचित्र v3 दस्तावेज़ से वह पूरा कोड स्निपेट मिला है। – mapr

2

हां, आप एक निर्दिष्ट कर सकते हैं

var kmz_Layer = new google.maps.KmlLayer('http://www.kmzlinks.com/redirect.asp?id=110&file=PalmIsland%2Ekmz'); 
var kml_Layer = new google.maps.KmlLayer('http://www.kmzlinks.com/redirect.asp?id=110&file=PalmIsland%2Ekml'); 
kml_Layer.setMap(map); 
kmz_Layer.setMap(map); 
अपने कोड में
संबंधित मुद्दे