簡體   English   中英

從Google Map Link提取經度和緯度

[英]Extract Latitude and Longitude from Google Map Link

假設我有以下指向Google地圖的鏈接: https : //www.google.com.gh/maps/place/Niagara+Falls/@43.0828162,-79.0763516,17z/data=!4m15!1m9!4m8!1m0! 1m6!1m2!1s0x89d34307412d7ae9:0x29be1d1e689ce35b!2sNiagara + Falls + NY + 14303,+ United + States!2m2!1d-79.0741629!2d43.0828162!3m4!1s0x89d34307412e7ae9:0x29be1!4d

我只想從以下鏈接中提取經度和緯度。 我認為我需要使用正則表達式來執行此操作,但是我不知道該如何處理。

在這種情況下,坐標為43.0828162,-79.0763516

我將使用像這樣的簡單RegX

preg_match('/@(\-?[0-9]+\.[0-9]+),(\-?[0-9]+\.[0-9]+)/', $url, $match );

您可以使用您的網址在這里看到它。

https://regex101.com/r/hD7lV0/1

只是為了解釋它

  • 一次匹配@ Literal At Sign
  • 匹配- ,文字連字符/減號? 一次或一次
  • 匹配[0-9]+ 1次或多次
  • 匹配\\. 字面的. 十進制一次
  • 匹配[0-9]+ 1次或多次
  • 一次匹配,文字,逗號等...

我會做。

<?php
    $latLong = split(',',preg_match('/@([0-9\.-,]*?)\//',$url));
    // $latLon = [lat, long] = $latLon[0],$latLom[1]
?>
  • 匹配@符號(作為比賽開始)
  • 任意數字,句號,減號或逗號,直到下一個'/'(以'\\'轉義)
  • 將其分為兩部分,“,”

如果需要,您可以使用

if (count($latLon) > 2){
    die('Invalid URL Segment found.');
}

如果您想真正使用正則表達式做空

    $latLong = split(',',preg_match('/@(.*?)\//',$url));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM