क्या पॉलीगॉन, आयत और सर्कल के अंदर या बाहर मार्कर की जांच करने के लिए कोई एल्गोरिदम है। मैंने इस link का उपयोग करके एक फ़ंक्शन लिखने का प्रयास किया। लेकिन कोई सफलता नहीं।पत्रक :: पॉलीगॉन या आयताकार के अंदर/बाहर बिंदु की जांच कैसे करें
उत्तर
आप PHP का उपयोग कर रहे हैं तो यह समारोह
$c = false;
$vertices_x = array(22.333,22.222,22,444); //latitude points of polygon
$vertices_y = array(75.111,75.2222,76.233); //longitude points of polygon
$points_polygon = count($vertices_x);
$longitude = 23.345; //latitude of point to be checked
$latitude = 75.123; //longitude of point to be checked
if (is_in_polygon($points_polygon, $vertices_x, $vertices_y, $longitude, $latitude)){
echo "Is in polygon!"."<br>";
}
else {
echo "Is not in polygon";
}
function is_in_polygon($points_polygon, $vertices_x, $vertices_y, $longitude_x, $latitude_y) {
$i = $j = $c = 0;
for ($i = 0, $j = $points_polygon-1; $i < $points_polygon; $j = $i++) {
if (($vertices_y[$i] > $latitude_y != ($vertices_y[$j] > $latitude_y)) && ($longitude_x < ($vertices_x[$j] - $vertices_x[$i]) * ($latitude_y - $vertices_y[$i])/($vertices_y[$j] - $vertices_y[$i]) + $vertices_x[$i])) {
$c = !$c;
}
}
return $c;
}
बहुत धन्यवाद @ कोमल –
यह फ़ंक्शन आयताकार के साथ काम करेगा कुंआ? – user2485649
पत्रक में एक समारोह इस जांच करने के लिए नहीं है काम करता है।
Polygon.getBounds().contains(MarketLatLng);
यह केवल यह देखने के लिए जांच करेगा कि क्या बिंदु बहुभुज के बाध्य आयत के भीतर है - न कि यह बहुभुज द्वारा स्वयं निहित है। –
इसे और अधिक बुद्धिमान बनाने के लिए, ** रे-कास्टिंग एल्गोरिदम ** का उपयोग करें ([यहां समझाया गया है] (http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html))। [कार्यान्वयन का उदाहरण] (https://github.com/substack/point-in-polygon/blob/master/index.js) – szymonm
काम कर रहे जावास्क्रिप्ट कोड उपलब्ध है [यहां] (https://github.com/ substack/प्वाइंट-इन-बहुभुज/ब्लॉब/मास्टर/index.js)। – Aneesh
<!-- <!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
#map-canvas {
margin: 0;
padding: 0;
width: 700px;
height: 500px;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var map;
var marker;
var latlong = [["21.001663","75.486069"],
["20.108977","73.914672"],
["21.1458","79.088155"],
["19.153061","77.305847"],
["20.0831","73.79095"],
["18.52043","73.856744"],
["16.774832","74.486265"],
["16.691308","74.244866"],
["19.876165","75.343314"],
["19.997453","73.789802"],
["20.532949","76.184303"],
["21.013321","75.563972"],
["18.9513","72.82831"],
["18.515752","73.182162"],
["19.075984","72.877656"],
["19.218331","72.97809"],
["19.844006","79.36266"],
["20.745319","78.602195"],
["21.267052","78.577973"],
["18.52043","73.856744"],
["19.96955","79.304654"],
["19.450585","72.799155"],
["18.52043","73.856744"],
["20.745319","78.602195"],
["18.9833","75.7667"],
["21.013321","75.563972"],
["21.1458","79.088155"],
["19.153061","77.305847"]];
function initialize() {
var mapOptions = {
zoom: 4,
center: new google.maps.LatLng(21.7679, 78.8718),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
drawCircle();
}
function drawCircle()
{
var options = {
strokeColor: '#800000',
strokeOpacity: 1.0,
strokeWeight: 1,
fillColor: '#C64D45',
fillOpacity: 0.5,
map: map,
center: new google.maps.LatLng(21.7679, 78.8718),
radius: 100000
};
circle = new google.maps.Circle(options);
var bounds= circle.getBounds();
for (var i = 0; i < latlong.length; i++){
var hello =new google.maps.LatLng(latlong[i][0], latlong[i][1]);
if(bounds.contains(hello))
{
marker= new google.maps.Marker({
position:hello,
});
marker.setMap(map);
console.log("Hi iam in bound");
}
else
{
console.log("Iam not in bound");
}
}
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html> -->
धन्यवाद .. लेकिन आपका कोड google apis के साथ काम करता है। और मैं पुस्तिका पुस्तिका के साथ बिंदु की जांच करना चाहता हूँ –
- 1. पत्रक के समन्वय। ड्रॉ आयताकार
- 2. आयताकार सीमाओं के अंदर कुशल बिंदु
- 3. निर्धारित करें कि एक बिंदु एक पत्रक बहुभुज
- 4. एक रेखा और आयताकार के बीच चौराहे की जांच कैसे करें?
- 5. एनएसएसटींग की जांच कैसे करें '%' या नहीं?
- 6. पॉलीगॉन
- 7. मानचित्र से पॉलीगॉन निकालें
- 8. मार्करों या पत्रक
- 9. पत्रक
- 10. आयताकार कैसे आकर्षित करें?
- 11. चमकदार/पत्रक/आर
- 12. पत्रक
- 13. पॉलीगॉन
- 14. पॉलीगॉन क्षेत्र की गणना
- 15. जांचें कि ओपनलेयर 3 में पॉलीगॉन के अंदर कोई बिंदु है या नहीं,
- 16. पत्रक
- 17. AFNetworking के संस्करण की जांच कैसे करें?
- 18. पॉलीगॉन
- 19. div की जांच कैसे करें या नहीं है?
- 20. तालिका की जांच कैसे करें या मौजूद नहीं है
- 21. एक बिंदु के आसपास QPainter drawText को संरेखित कैसे करें, आयताकार नहीं?
- 22. अगर NSString संख्यात्मक है की जांच कैसे करें या नहीं
- 23. पॉलीगॉन
- 24. मैं माइक्रोसॉफ्ट डेटाबेस में पॉलीगॉन के क्षेत्र की गणना कैसे करूं जब पॉलीगॉन के अंक लेट लांग हैं?
- 25. पिक्चरबॉक्स पर ड्राइंग आयताकार - आयताकार क्षेत्र को कैसे सीमित करें?
- 26. पहचानें कि कोई बिंदु बहुभुज के भीतर है या नहीं?
- 27. jQuery के साथ डोम समानता की जांच कैसे करें?
- 28. पॉलीगॉन
- 29. पत्रक: GeoJson फ़िल्टर अद्यतन करें?
- 30. सही आकार की जांच कैसे करें?
क्या इसके लायक है के लिए, पत्रक एपीआई सीमा 'contains' समारोह का उपयोग कर आयतों के लिए जाँच की जाती है। http://leafletjs.com/reference.html#bounds बहुभुज और मंडलियों के लिए कोई उपयोग नहीं है, हालांकि। –
https://github.com/mapbox/leaflet-pip क्या एक पुस्तिका है जो उस क्रिया को प्रदान करती है जो कि एक पॉलीगॉन के भीतर एक बिंदु निर्धारित करने के लिए किरण ट्रेसिंग तकनीक लागू करती है। –
पुस्तिका-पीआईपी स्वीकृत उत्तर होना चाहिए। अच्छी तरह से काम करें (स्रोत फ़ाइल को पैच करने के बाद: "एल उदाहरण के लिए एल। मल्टीपीलीयन" हटाएं, https://github.com/mapbox/leaflet-pip/issues/8) – AlainIb