我想查看表单提供的纬度和经度坐标是否在多边形内,然后提醒用户两个实例。点对多维数据集检查纬度和经度值
到目前为止,这里是我的代码。我已经做了一些研究,据说您可以使用光线投射,或者您可以使用Google Maps API提供的containsLocation()来执行此操作。但我无法弄清楚如何使用它来实现。
这里是一个演示http://codepen.io/simonfricker/pen/qbxOxy
HTML
<input id="location" placeholder="" type="text" class="form-control" autocomplete="off">
<div id="map"></div>
JS
var option = {
types: ['(cities)'],
// country: 'GB'
};
var latco, lngco;
$("#location").geocomplete(option).bind("geocode:result", function(event, result) {
latco = result.geometry.location.lat()
lngco = result.geometry.location.lng()
console.log(result.geometry.location.lng());
console.log(result.geometry.location.lat());
});
var map;
var src = 'http://kml-samples.googlecode.com/svn/trunk/kml/Region/polygon-simple.kml';
function initialize() {
map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(-19.257753, 146.823688),
zoom: 2,
mapTypeId: google.maps.MapTypeId.TERRAIN
});
loadKmlLayer(src, map);
}
function loadKmlLayer(src, map) {
var kmlLayer = new google.maps.KmlLayer(src, {
suppressInfoWindows: true,
preserveViewport: false,
map: map
});
google.maps.event.addListener(kmlLayer, 'click', function(event) {
var content = event.featureData.infoWindowHtml;
var testimonial = document.getElementById('capture');
testimonial.innerHTML = content;
});
}
google.maps.event.addDomListener(window, 'load', initialize);
的[标记确定的多边形内的LAT LNGS]可能的复制(http://stackoverflow.com/questions/2784807/determine-the - 多边形内的标记点) – Pio
您无法访问使用KmlLayer显示的KML文件中的多边形数据,您需要将该多边形创建为本地Google Maps JavaScript API v3多边形。您可以使用第三方KML解析器,如[geoxml3](https://github.com/geocodezip/geoxml3)或[geoxml-v3](https://code.google.com/p/geoxml-v3/ )。 – geocodezip