एक बहुभुज अनेक पथों के साथ आकर्षित के साथ
---------- गुणकों हलकों के साथ तैयार की
@ दाऊद स्ट्रेचन जवाब मेरे सवाल का एक बड़ा हिस्सा हल । यहाँ इस समाधान का एक हिस्सा है:
function drawCircle(point, radius, dir)
{
var d2r = Math.PI/180; // degrees to radians
var r2d = 180/Math.PI; // radians to degrees
var earthsradius = 3963; // 3963 is the radius of the earth in miles
var points = 32;
// find the raidus in lat/lon
var rlat = (radius/earthsradius) * r2d;
var rlng = rlat/Math.cos(point.lat() * d2r);
var extp = new Array();
if (dir==1) {var start=0;var end=points+1} // one extra here makes sure we connect the
else{var start=points+1;var end=0}
for (var i=start; (dir==1 ? i < end : i > end); i=i+dir)
{
var theta = Math.PI * (i/(points/2));
ey = point.lng() + (rlng * Math.cos(theta)); // center a + radius x * cos(theta)
ex = point.lat() + (rlat * Math.sin(theta)); // center b + radius y * sin(theta)
extp.push(new google.maps.LatLng(ex, ey));
}
return extp;
}
इस समारोह पथ देता है, तो आप इसे उपयोग कर सकते हैं एक सरणी buid करने: पहले आप इस "drawCircle" समारोह के बजाय गूगल मैप्स एपीआई V3 के सर्किल वस्तु का उपयोग करना चाहिए के रास्ते जो आप एक ही बहुभुज वस्तु का निर्माण करने के बाद का उपयोग करेगा:
var polys = [] ;
$(xml).find("trkpt").each(function() { // Parsing every points of my track
var p = new google.maps.LatLng($(this).attr("lat"), $(this).attr("lon"));
points.push(p);
if ((i++ % 10) == 0) // Only display a circle every 10 points
{
polys.push(drawCircle(p,radius/1609.344,1)) ; // Radius value is in meters for me, so i divide to make it in miles
}
});
peanutcircle = new google.maps.Polygon({
paths: polys,
strokeOpacity: 0,
strokeWeight: 0,
fillColor: color,
fillOpacity: 0.35,
});
peanutcircle.setMap(map);
और यह सब है, तो आप एक जटिल है, लेकिन एक बहुभुज, शायद आसान उपयोग करने के लिए तैयार हो जाता है।
केवल मेरे लिए समस्या यह है कि इस एकल बहुभुज में निहित मार्करों की जांच करना (Google फ़ंक्शन में स्थान और github.com/tparkin/Google-Maps-Point-in-Polygon) अच्छा काम नहीं कर रहा है, इसलिए मुझे उपयोग करना जारी रखना पड़ा मेरे गुणक मंडल यह जांचने के लिए कि मेरे क्षेत्र में मार्कर हैं या नहीं।
उनके उत्तर के लिए @ डेविड स्ट्रैंचन धन्यवाद।
स्रोत
2014-04-22 08:49:19
दिलचस्प समस्या और अच्छी तरह से विकसित सवाल। ..मैं केवल सोचा था कि आप माइक्रो ज्यामिति को एक बड़े मैक्रो ज्यामिति में विलय करने पर विचार कर सकते हैं - जीआईएस में हम इसे एक [डिसोल्व] (http://wiki.gis.com/wiki/index.php/Dissolve) कहते हैं। समारोह। अपनी सर्वर-साइड टेक्नोलॉजीज को जानने के बिना आपको दिशा में इंगित करना मुश्किल है। आप एक समाधान क्लाइंट-साइड का अनुमान लगा सकते हैं, लेकिन मुझे लगता है कि यह एक कठिन अभ्यास होगा। – elrobis