這是一個GIS問題。谷歌地圖API是不是一個真正的全面的GIS。如果你想要一個。開源的解決方案,我建議加載你的黃色和綠色的多邊形到PostGIS的數據庫,然後你就可以查詢數據庫
舉個例子,你可以編碼所繪製的多邊形作爲具有格式的多邊形對象:
POLYGON((lon lat, lon lat, lon lat, lon lat, ... lon lat))
然後發送給從像JavaScript的PHP文件(你會在$.get()
命令或類似的包裝這並返回JSON結果:
getParcels.php?bounds=POLYGON((lon lat, lon lat, lon lat, lon lat, ... lon lat))
在PHP文件,查詢PostGIS的數據庫,並返回的ID黃色和綠色的多邊形:
<?php
$pgcon = pg_connect ("dbname=gis user=gisuser connect_timeout=5") or die ('Can not connect to PG server');
if (!$pgcon) {
echo "No connection to GIS database.\n";
}
$bounds = urldecode($_GET["bounds"];
$ewkt = 'SRID=4326;' . $bounds);
$json = ''; // this will contain your output
// Here I am returning the polygon geometry and the parcelID...
$query .= <<<EOD
SELECT
ST_AsGeoJSON(the_geom) as geom,
parid
FROM
parcels
WHERE
ST_Intersects(the_geom, ST_GeomFromEWKT($1));
EOD;
$result = pg_query_params($pgcon, $query, array($ewkt));
if($result) {
$json = '{"type":"FeatureCollection", "features":[';
while($row = pg_fetch_assoc($result)) {
$json .= '{"geometry":' . $row['geom'] . ',';
$json .= '"type":"Feature","properties":{"parid":"' . $row['parid'] . '"}},';
}
$json = substr($json, 0,-1).']}';
}
echo $json;
?>
這將返回交叉使用的PostGIS的ST_Intersects
命令你的多邊形包裹。