2011-07-26 15 views
6

क्या फ़्यूज़न टेबल परत के साथ काम करने के लिए मार्कर क्लस्टरिंग (यानी makerclusterer) प्राप्त करने का कोई तरीका है? ऐसा लगता है कि फ़्यूज़न टेबल परत का उपयोग करते समय आपको मार्करक्लस्टर को मार्कर असाइन करना होगा, Google मार्कर/इन्फॉइंडो को संभालने वाला है? अभी भी इस संलयन तालिका चीज को समझने की कोशिश कर रहा है।मार्कर क्लस्टरिंग - फ़्यूज़न टेबल लेयर - Google मानचित्र v3

मूल रूप से एक तरह से मार्कर की बड़ी मात्रा में क्लस्टर के लिए देख फ़्यूज़न तालिका

उत्तर

0

फ़्यूज़न टेबल्स आपको सर्वर साइड प्रतिपादन (Google सर्वर से) का उपयोग करके हजारों अंक एक बार देखने की अनुमति देता है। मार्कर क्लस्टरर निकटतम बिंदुओं (क्लाइंट ब्राउज़र से) से क्लस्टर का एक सेट बनाकर समस्या हल करता है। मैं जरूरी नहीं कि वे दोनों एक ही समय में उपयोग करें, लेकिन यह आपके उपयोग के मामले में काम कर सकता है, यह आपके ऊपर है।

आप कैसे वे यहाँ काम के बारे में अधिक जानकारी पढ़ सकते हैं:

http://code.google.com/apis/maps/articles/toomanymarkers.html

तुम सच में भी आप फ़्यूजन तालिका एपीआई इस्तेमाल कर सकते हैं मार्कर clusterer को फ़्यूजन तालिका से डेटा को खिलाने के लिए चाहता है तो।

उम्मीद है कि इससे मदद मिलती है।

1

के माध्यम से प्रदान की जा रही मुझे नहीं लगता कि आप इसे फ्यूज़न तालिका के साथ काम मिल जाएगा है। आईएमओ संलयन तालिका में एक स्थानिक सूचकांक के लिए समर्थन की कमी है। एक si 2 डी जटिलता को 1 डी जटिलता में कम करने में मदद करता है। यह कई अनुप्रयोगों में उपयोग करता है जैसे हीटमैप्स, ट्रेमैप्स, पोस्ट कोड सर्च, मैप्स एप्लीकेशन। आप निक के हिल्बर्ट वक्र स्थानिक इंडेक्स क्वाड्री ब्लॉग की तलाश करना चाहते हैं।

5

फ़्यूज़न टेबल परतें प्रत्येक टाइल के लिए एक अतिरिक्त पीएनजी छवि प्रस्तुत करती हैं जो नक्शा टाइल के शीर्ष पर ओवरलैड हो जाती है, जिसमें उस टाइल के डेटा बिंदु होते हैं, यह सर्वर पक्ष प्रतिपादन भाग है। तो यह डेटा टाइल वाले प्रति टाइल के कई डेटा पॉइंट्स हैं।

MapsIt.png map tile with data points already positioned on the layer

डेटा से अपना खुद का मार्करों जनरेट कर रहा है, जो MarkerClusterer के लिए आवश्यक है, टाइल प्रति छवि ओवरले नहीं है, यह प्रत्येक डेटा बिंदु के लिए नक्शे पर एक व्यक्ति मार्कर बनाता है और करने के लिए पर एक स्प्राइट छवि ओवरले उस।

Marker Sprite image used for each data point

इस आधार पर यह MarkerClusterer और एक FusionTablesLayer उपयोग करने के लिए संभव नहीं है।

+0

इस पोस्ट में मेरे लिए यह शोध करें। सोचा था कि मैं एक टिप्पणी छोड़ दूंगा कि हाँ, Google फ्यूजन टेबल्स टीम के मुताबिक यह संभव है। [Https://groups.google।com/d/msg/fusion-tables-users-group/eW-der8-diM/unaqHkpgeDcJ] – danagerous

+0

@ डैनगेरस फ़्यूज़नटेबल्सलेयर पर ऐसा करने और फ़्यूज़न टेबल से डेटा का उपयोग करने के बीच एक बड़ा अंतर है जैसा आपने संदर्भों का उल्लेख किया है। फ़्यूज़न टेबल से डेटा का उपयोग करना संभव है, फिर भी फ़्यूज़नटेबल्सलेयर का उपयोग करके ऐसा करना संभव नहीं है जो सर्वर-साइड प्रदान किया जाता है। उन्हें सर्वर पक्ष पर प्रत्येक ज़ूम स्तर पर समूहीकृत वस्तुओं का एक परत बनाना होगा। – Freddy

+0

@ आपका लिंक टूटा हुआ प्रतीत होता है। क्या आपके पास वैकल्पिक विकल्प है? – tentaclenorm

5

यह मेरा खुद का कोड है। मैं पहले के लिंक में तकनीक की कोशिश कर रहा था लेकिन यह मेरे लिए काम नहीं करता था। तो इस तरह मैंने यह किया।

सबसे पहले मैं

function initialize() { 
    mapMain = new google.maps.Map(document.getElementById('map-canvas'), { 
     center: new google.maps.LatLng(37.4, -100.1), 
     zoom: 3, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 
    mc = new MarkerClusterer(mapMain); 
    var queryText = encodeURIComponent("select wikipedia_article, xy from "+tableid); 
    var query = new google.visualization.Query("https://www.google.com/fusiontables/gvizdata?tq="+queryText); 
    query.send(handleQueryResponse); 
} 

इसके बाद, मेरी handleQueryResponse में, मैं डायनामिक रूप से तैयार मार्करों नियमित चार्ट API क्वेरी के साथ फ्यूज़न तालिका पूछे और Mapclusterer

function handleQueryResponse(response){ 
    dataTable = response.getDataTable(); 

    for(var i=0; i< dataTable.getNumberOfRows();i++){   
     var hrefval = dataTable.getValue(i,0).toString(); 

     var arr = dataTable.getValue(i,1).toString().split(" ");    
     var latlng = new google.maps.LatLng(arr[0], arr[1]); 

     var marker = new google.maps.Marker({ 
      position: latlng, 
      map:mapMain 
     }); 
     fn = markerClick(i, marker); 
     google.maps.event.addListener(marker,'click', fn);   
     markers.push(marker); 
    } 
    mc.addMarkers(markers); 
} 

इस मामले में में जोड़ा, मुख्य मानचित्र, मार्करों की सरणी (नीचे दिए गए कोड में एमसी) वैश्विक चर हैं। आप पूर्ण कार्य उदाहरण here देख सकते हैं।

+2

क्या आप सारांशित कर सकते हैं कि उन्होंने उस साइट पर क्या किया है ताकि आपका उत्तर अधीन न हो लिंक सड़ांध? – user7116

+0

यह दिलचस्प है, मैं FusionTableLayer में लोड किए गए केएमएल मार्करों के साथ ऐसा करना चाहता हूं। क्या आपके पास कोई उदाहरण है? –

+0

मैंने बहुत समय पहले ऐसा किया था, तब से कोई भी Google मानचित्र आधारित काम नहीं किया है। – Ayush

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