获取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);
}
http://www.bkjia.com/PHPjc/478032.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/478032.html技術記事 Dianping.com の緯度経度の POI を取得します。 1. 次のリンクがあるショップを見つけたら、www.dianping.com/shop/3174400/ 2. 手動で地図を添付し、リンクが www.dianping...
のようになります。