ホームページ  >  記事  >  バックエンド開発  >  Google マップ座標を Baidu マップ座標に PHP バッチ変換_PHP チュートリアル

Google マップ座標を Baidu マップ座標に PHP バッチ変換_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:53:201482ブラウズ

获取POI lat lon
 
大众点评网
1. 以下のリンクがあるお店を見つけたら
www.dianping.com/shop/3174400/
2. 地図を手動で添付してリンクを次のようにします
www.dianping.com/shop/3174400/map
3. そのページでソースを表示します
ページの真ん中に、次のようなものがあります
p: 「HETHVFZVVJDHUD」
m: $(「ShopGMap」)
ショップID:「3174400」
p: 数値はエンコードされた緯度と経度の値です
以下はそれをデコードするためのスクリプトです
 
 
jQuery テスト


 
<スクリプトタイプ="text/javascript">
          var settings = { digi: 16, add: 10, plus: 7, cha: 36, center: { lat: 34.957995, lng: 107.050781, isDef: true} };
    関数デコード(ポイ) {
          //アラート(ポイ);
        変数インデックス = -1;
        変数カウント = 0;
        var code = "";
        var len = poi.length;
        var apiKey = poi.charCodeAt(len - 1);
        poi = poi.substring(0, len - 1);
        レン--;
        for (var i = 0; i             var hash = parseInt(poi.charAt(i), settings.cha) - settings.add;
            if (ハッシュ >= settings.add) {
                ハッシュ = ハッシュ - settings.plus;
            }
            コード += (ハッシュ).toString(settings.cha);
            if (ハッシュ > カウント) {
                インデックス = i;
                カウント = ハッシュ;
            }
        }
        var subLL = parseInt(code.substring(0,index),settings.digi);
        var addLL = parseInt(code.substring(index + 1), settings.digi);
        var lng = (subLL + addLL - parseInt(apiKey)) / 2;
        var lat = (addLL - lng) / 100000.0;
        lng /= 100000.0;
 
        $('#lat')
.val(lat);
        $('#lng').val(lng);
        //return { "lat": lat, "lng": lng };
        $('#sql').val("update site set thegeom=ST_GeomFromText('POINT("+ lng + " " + lat + ")',4326) where siteid=");
 
    }; 

 
 
以上がjs方式移行です。 以下はphp方式です
 
 
#echo $位置.”n”;
#echo $地图x轴.”n”;
#echo $地图y轴.”n”;
 
$db_host = “localhost”;// 服务器
$db_user = “root”;//用户名
$db_psw = “123456”;//秘密
$db_name = “dianping”;//数据库名
$connection = mysql_connect($db_host,$db_user,$db_psw) または die(“连接サービス务器失败”);
mysql_select_db($db_name,$connection) または die(“选择データベース库失败”);
 
mysql_query(“名前を設定’utf-8’”); //utf8
 
set_time_limit(0);// 超過時間を防ぎます。  
$querysql = “select * from dianping” ; //
$queryresult = mysql_query($querysql) または die(“查询データ失败”);//実行查询
 
while($row = mysql_fetch_array($queryresult)){
 
$array = decode($row['map']);
$string = $array['0'].",".$array['1'];
echo $string.”
”;
$id = $row['id'];
$UpdateQuery = “ディアンピングセットマップの更新 = ‘$string’、ID = ‘$id’”;
$UpdateQueryResult = mysql_query($UpdateQuery) または die("クエリデータが失敗しました") //クエリを実行します
; }

/* 座標文字列が変化する場合があるが、変換後の座標は変化しないことが判明。
$poi = ‘IJJTHFZVITEBVS’;
$poi1 = ‘IJJTGDZVITEBVA’;
$poiss = デコード($poi);
$poiss1 = デコード($poi1);
print_r($poi).'
n';
print_r($poiss).’
n’;
print_r($poi1).'
n';
print_r($poiss1);
*/
関数デコード($poi) {
$settings = 配列(
「デジ」=> 16、
「追加」=> 10、
「プラス」=> 7,
「ちゃ」=>36、
「中心」=> 配列(
「緯度」=> 34.957995、
「lng」=> 107.050781,
「isDef」=> true
)
);
$i = -1;
$h = 0;
$b = "";
$j = strlen($poi);
$g = ord($poi{$j-1});
$c = substr($poi, 0, $j-1);
$j–;

for($e=0; $e $d = Base_convert($c{$e}, $settings['cha'], 10) – $settings['add'];
if ($d>=$settings['add']) {
$d = $d- $settings['plus'];
}

$b .=base_convert($d, 10, $settings['cha']);
if ($d>$h) {
$i = $e;
$h = $d;
}
}
$a = Base_convert(substr($b, 0, $i), $settings['digi'], 10);
$f = Base_convert(substr($b, $i+1), $settings['digi'], 10);
$l = ($a+$f – intval($g))/2;
$k = ($f – $l)/100000;
$l /= 100000;
$lat = $k;
$lng = $l;
配列を返す($lng, $lat);
}

php批量转换谷歌地图坐标为百度地图坐标 - InSun - Minghacker is Insun

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478032.html技術記事 Dianping.com の緯度経度の POI を取得します。 1. 次のリンクがあるショップを見つけたら、www.dianping.com/shop/3174400/ 2. 手動で地図を添付し、リンクが www.dianping...
のようになります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。