Gmaps4Rails के साथ कई मार्कर रंग

मैं एक Google मानचित्र प्रदर्शित करने के लिए Gmaps4Rails का उपयोग कर रहा हूंमार्करों के साथ। मेरे पास नक्शा काम कर रहा है और यह मेरे मॉडल में सहेजे गए प्रति पते पर एक लाल मार्कर प्रदर्शित करता है। मैं सामान्य से थोड़ा हटकर कुछ करने की कोशिश कर रहा हूँ, इसलिए यहाँ अपने लक्ष्यों की संक्षिप्त व्याख्या है:

अधिकांश मानचित्रों के साथ, मानचित्र पर प्रति स्थान एक रंगठीक है। उदाहरण के लिए, यदि आप किसी नक्शे पर रेस्तरां सूचीबद्ध कर रहे हैं, तो आप सभी को पिज़्ज़ा रेड, चाइनीज़ ब्लू, हैम्बर्गर्स ग्रीन इत्यादि के लिए मार्कर बना देंगे ... दुर्भाग्य से, मेरे मामले में यह काम नहीं करता है: मुझे कई रंग होने चाहिए प्रति स्थान। कल्पना करें कि क्या रेस्तरां एक श्रेणी में अच्छी तरह से फिट नहीं है: यदि एक रेस्तरां मेक्सिकन, पिज्जा और हैम्बर्गर की सेवा कर सकता है - तो, ​​आपको लाल, नीले और हरे रंग के मार्कर के लिए उस स्थान की आवश्यकता है। यह वह जगह है जहाँ मुझे समस्या है।

मैं जिस समाधान के साथ आया हूं वह आधार मार्कर को जोड़ना है, फिर प्रत्येक अतिरिक्त मार्कर (नया रंग) को कई पिक्सेल अधिक जोड़ना है, इसलिए उपयोगकर्ता प्रत्येक नए रंगीन मार्कर के शीर्ष को देख सकता है।

क्या यह मेरा लक्ष्य पूरा करने का सबसे अच्छा तरीका है? यदि हां, तो मैं कहां से शुरू करूं? मुझे यकीन नहीं है कि मुझे क्या करना है - Gmaps4Rails यह बहुत आसान बनाता है, लेकिन मुझे पता नहीं है कि मूल बातों से परे क्या करना है।

restaurant_controller.rb

@locations = Location.search(params[:search]).order("created_at desc")

@hash = Gmaps4rails.build_markers(@locations) do |location, marker|
marker.lat location.latitude
marker.lng location.longitude
marker.infowindow "<b>#{location.name}</b>
<br/><i>#{location.address}</i>
<br/><i>#{location.city} #{location.state}., #{location.zip}</i>
<p/>#{location.services.map{|service| service.name }.join(", ") }
<p/><a href="#{location_path(location)}">Location Details</a>"
end

_map.js.erb

<!-- Google Maps JS -->
<script src="http://maps.google.com/maps/api/js?v=3.13&amp;sensor=false&amp;libraries=geometry" type="text/javascript"></script>
<script src="http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js" type="text/javascript"></script>

<script language="javascript" type="text/javascript">
handler = Gmaps.build("Google");
handler.buildMap({ provider: {}, internal: {id: "map"}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
</script>

उत्तर:

उत्तर № 1 के लिए 1

आप इसे इस तरह से @hash को हैश "चित्र" जोड़ सकते हैं।

lat: latitude_of_location,
lng: longitude_of_location,
picture: {
url: "url of image",
width:  36,
height: 36
},
infowindow: "Add all the details you want to add here"
});
  1. नियंत्रक में आप परोसे गए व्यंजनों की श्रेणियों की जांच कर सकते हैं।

  2. उस छवि पथ को जोड़ें जिसमें उपयुक्त रंग हैं।

  3. इसे मैप में उसी तरह जोड़ें जैसे आप कर रहे हैं।

एक और विकल्प समान जानकारी के साथ अक्षांश और देशांतर को थोड़ा बदलना हो सकता है। लेकिन यह एक अच्छा समाधान नहीं लगता है।