2010-08-18 16 views
50

मैं एक स्थानीय kml फ़ाइल लोड करने के लिए एक नमस्ते दुनिया कार्यक्रम (गूगल डॉक्स से उधार) बनाया:Google नक्शे का उपयोग कर स्थानीय .kml फ़ाइल लोड हो रहा है?

var ctaLayer = new google.maps.KmlLayer("http://localhost:8080/kml/cta.kml"); 

यह काम नहीं करता (कुछ भी नहीं लोड हो जाता है)।

हालांकि, जब मैं करने के लिए कि लाइन बदलने के लिए:

var ctaLayer = new google.maps.KmlLayer("http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml"); 

इसे ठीक से लोड करता है। दोनों किमीएल फाइलें समान हैं। इसे स्वयं सेवा करते समय इसे लोड करने के लिए मुझे क्या करने की ज़रूरत है? (मैं दोनों निरपेक्ष और सापेक्ष पथ की कोशिश की, और मुझे पता रास्तों मैं उपयोग कर रहा हूँ सही हैं ...)

इसके अलावा मैं अपने appserver के कॉन्फ़िग फ़ाइल करने के लिए सही माइम प्रकार कहा:

<mime-mapping> 
    <extension>kml</extension> 
<mime-type>application/vnd.google-earth.kml+xml</mime-type> 
</mime-mapping> 
<mime-mapping> 
    <extension>kmz</extension> 
    <mime-type>application/vnd.google-earth.kmz</mime-type> 
</mime-mapping> 

लेकिन यह अभी भी लोड नहीं होता है

मैं गूगल के docs में यह पाया:

गूगल मैप्स एपीआई भौगोलिक जानकारी प्रदर्शित करने के लिए KML और GeoRSS डेटा स्वरूपों का समर्थन करता। इन डेटा प्रारूपों को एक KmlLayer ऑब्जेक्ट का उपयोग करके मानचित्र पर प्रदर्शित किया जाता है, जिसका कन्स्ट्रक्टर सार्वजनिक रूप से सुलभ केएमएल या जियोआरएसएस फ़ाइल का यूआरएल लेता है।

तो मुझे लगता है कि मैं क्या करने की कोशिश कर रहा हूँ एक सार्वजनिक रूप से सुलभ यूआरएल से kml की सेवा के बिना संभव नहीं है ... जब तक कि कोई साबित कर सकते हैं अन्यथा

+0

जब आप ब्राउज़र में स्थानीय केएमएल यूआरएल पर जाते हैं तो क्या होता है? –

उत्तर

53

एम एल पहुँचा नहीं जा सकता यह है के बाद से आपकी स्थानीय मशीन पर और Google उस तक नहीं पहुंच सकता है क्योंकि यह नहीं जानता कि स्थानीयहोस्ट कैसे प्राप्त करें: 8080

+3

यह सही है, Google को इसे एक्सेस करने में सक्षम होना चाहिए। हमें एक ही समस्या थी, क्योंकि हम नहीं चाहते थे कि हमारी केएमएल फाइल जनता के लिए सुलभ हो। रिमोट एपीआई केएमएल फ़ाइल तक पहुंचता है, इसलिए यह स्थानीय नहीं हो सकता है, इसे वेब पर प्रकाशित होना चाहिए। – Kezzer

+0

@ कियरन सीनियर आप kml बनाने के समय अपने kml को निजी रूप से सुलभ बना सकते हैं .. गोपनीयता सेटिंग के तहत दो विकल्प उपलब्ध सार्वजनिक और अनलिस्ट किए गए। –

+1

अच्छी तरह से नरक ...कोई आश्चर्य नहीं कि मुझे KmlLayer के लिए "rawData" ("url" के विपरीत) विकल्प नहीं मिला। – targnation

35

दुर्भाग्य से आप "लोकलहोस्ट" का उपयोग नहीं कर सकते हैं। आपके पास दो विकल्प हैं:

  1. सार्वजनिक रूप से उपलब्ध डोमेन पर kml रखें। (यदि google इसे एक्सेस नहीं कर सकता है, तो यह काम नहीं करेगा)
  2. geoxml3 का उपयोग करें जो मूल रूप से Google करता है लेकिन आपको पार्सर जेएस फ़ाइल को डाउनलोड करने और होस्ट करने की अनुमति देता है। यह आपको एक LOCALHOST केएमएल लोड करने और आपके लिए इसे बाहर निकालने की अनुमति देगा (जेएसओएन के माध्यम से सुलभ वस्तुएं) (http://code.google.com/p/geoxml3/)।

चॉइस # 1 रक्षा अनुबंधों पर काम करने वाले लोगों के लिए एक विकल्प नहीं हो सकता है और संवेदनशील जानकारी से निपटने के लिए हो सकता है क्योंकि kml पृष्ठभूमि में Google को भेजा जाता है और मानचित्र पर प्रस्तुत किया जाता है।

+2

मेरे लिए काम करें, [geoxml3] का उपयोग करें (http://code.google.com/p/geoxml3/) –

17

This website आवश्यक है कि आप संपूर्ण केएमएल फ़ाइल को वेबसाइट में कॉपी/पेस्ट करें। वैकल्पिक रूप से, आप अपने सार्वजनिक फ़ोल्डर का उपयोग करके केएमएल फ़ाइल होस्ट करने के लिए Dropbox का उपयोग कर सकते हैं। सार्वजनिक ड्रॉपबॉक्स फ़ोल्डर में एक राइट-क्लिक संदर्भ मेनू है जो आपको यूआरएल की प्रतिलिपि बनाने की अनुमति देता है।

+1

यह वेबसाइट अब 2017 के रूप में प्रयोग योग्य नहीं है। –

+0

मुझे नहीं लगता कि ड्रॉपबॉक्स अब इस संदर्भ में फ़ाइल होस्टिंग की अनुमति देता है या तो: \ – Ragaar

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