1
A
回答
1
我爲此寫了代碼,而不是英國地區的網格。
我必須使用DOMDocument::load()
來讀取像XML這樣的KML文件,這使您可以讀取KML文件並獲取其包含的經度和緯度點。請記住,雖然我不得不稍微更改KML以使其起作用。建立在谷歌地圖自定義地圖後,首先點擊右鍵,複製谷歌地球鏈接 - 這將給像這樣
http://maps.google.co.uk/maps/ms?ie=UTF8&hl=en&vps=1&jsv=314b&msa=0&output=nl
你應該改變輸出kml
,請訪問然後保存輸出,我在這裏省略了部分URL,因爲不會放棄我的地圖!
http://maps.google.co.uk/maps/ms?ie=UTF8&hl=en&vps=1&jsv=314b&msa=0&output=kml
然後我不得不刪除<kml>
元素被刪除以下行
<kml xmlns="http://earth.google.com/kml/2.2">
而且
</kml>
這將讓你只用<Document>
元素其中包含的一點。然後使用DOMDocument讀取它並遍歷它以獲取它包含的座標。例如,您可以遍歷地標和它們的座標,創建一個polygin,然後與long相交。我用這個網站爲多邊形代碼http://www.assemblysys.com/dataServices/php_pointinpolygon.php。正是在這個例子中一個實用程序類:
$dom = new DOMDocument();
$dom->load(APPLICATION_PATH . self::REGIONS_XML);
$xpath = new DOMXpath($dom);
$result = $xpath->query("/Document/Placemark");
foreach($result as $i => $node)
{
$name = $node->getElementsByTagName("name")->item(0)->nodeValue;
$polygon = array();
// For each coordinate
foreach($node->getElementsByTagName("coordinates") as $j => $coord)
{
// Explode and parse coord to get meaningful data from it
$coords = explode("\n" , $coord->nodeValue);
foreach($coords as $k => $coordData)
{
if(strlen(trim($coordData)) < 1)
continue;
$explodedData = explode("," , trim($coordData));
// Add the coordinates to the polygon array for use in the
// polygon Util class. Note that the long and lat are
// switched here because the polygon class expected them
// a specific way around
$polygon[] = $explodedData[1] . " " . $explodedData[0];
}
}
// This is your address point
$point = $lat . " " . $lng;
// Determine the location of $point in relation to $polygon
$location = $pointLocation->pointInPolygon($point, $polygon);
// $location will be a string, this is documented in the polygon link
if($location == "inside" || $location == "boundary")
{
// If location is inside or on the boundary of this Placemark then break
// and $name will contain the name of the Placemark
break;
}
}
相關問題
- 1. 谷歌地圖kml
- 2. 谷歌地圖標記與KML
- 3. 谷歌地圖Javascript API與KML層?
- 4. 谷歌地圖API(KML層)
- 5. 通KML到谷歌地圖
- 6. 清除谷歌地圖kml
- 7. 動態kml谷歌地圖
- 8. 谷歌地圖KML層
- 9. 谷歌地圖過濾,jquery和KML
- 10. 谷歌地球KML
- 11. KML圖標大小谷歌地圖API?
- 12. 谷歌地球加載KML 2.2但不是谷歌地圖
- 13. 谷歌地圖呈現谷歌地球的KML反相
- 14. 以kml爲中心的谷歌地圖
- 15. KML打開圖片,谷歌地球
- 16. 在谷歌地圖api中切換kml
- 17. 谷歌地圖引擎:export kml curl
- 18. KML層Cursor CSS - 谷歌地圖API v3
- 19. 通過谷歌地圖API處理KML
- 20. 谷歌地圖輸出= kml壞了?
- 21. 谷歌地圖顯示KML數據
- 22. 谷歌地圖在Android的kml文件
- 23. 谷歌地圖 - 加載KML覆蓋
- 24. iPhone谷歌地圖KML搜索
- 25. 在谷歌地圖上使用KML/KMZ
- 26. 谷歌地圖不鏈接kml文件
- 27. 谷歌地圖API - KML負載(PHP)
- 28. 谷歌地圖KML不顯示點
- 29. 在谷歌地圖中切換多個KML/KML圖層API v3
- 30. 問題與ajax和可能谷歌地圖
我會嘗試這一點,但我是一個菜鳥,超過這個東西一半是出於理解... – nomie 2011-02-10 15:57:05