1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php批量转换谷歌地图坐标为百度地图坐标

php批量转换谷歌地图坐标为百度地图坐标

时间:2021-12-14 10:22:10

相关推荐

php批量转换谷歌地图坐标为百度地图坐标

php教程|php手册

php,批量,转换,谷歌,地图,坐标,为,百度,获取,POI,lat,lon,大众,点评,网,you,find,shop

php教程-php手册

获取POI lat lon

肯德基网站源码,vscode括号高亮显示,ubuntu 日历提醒,jdb 调试tomcat,sqlite支持并发读取吗,大爬虫鸡皮疙瘩是什么,php解码url,seo基础优化推广,分类网站模版,网页js特效怎么做的,4s模板lzw

大众点评网

1. if you find a shop, which has the following link

/shop/3174400/

2. manually attache map to make the link looks like

/shop/3174400/map

3. do a view source on that page

in the middle of the page, you will find something like

p: “HETHVFZVVJDHUD”

m: $(“ShopGMap”)

shopId: “3174400″

the p: number is the encoded Lat, lon value

following is the script to decode it

同学录 网站源码,ubuntu下构建ftp,tomcat布置服务器,爬虫叮咬,杭州php开发技术学习,seo书海lzw

jquery test

淘宝联盟 网站系统源码,ubuntu系统清除缓存,爬虫挖掘网站信息,写一个最简单的php网页,seo薪酬模式lzw

var settings = { digi: 16, add: 10, plus: 7, cha: 36, center: { lat: 34.957995, lng: 107.050781, isDef: true} };

function decode(poi) {

//alert(poi);

var index = -1;

var count = 0;

var code = “”;

var len = poi.length;

var apiKey = poi.charCodeAt(len – 1);

poi = poi.substring(0, len – 1);

len–;

for (var i = 0; i < len; i++) {

var hash = parseInt(poi.charAt(i), settings.cha) – settings.add;

if (hash >= settings.add) {

hash = hash – settings.plus;

}

code += (hash).toString(settings.cha);

if (hash > count) {

index = i;

count = hash;

}

}

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方式

<?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) or die(“连接服务器失败”);

mysql_select_db($db_name,$connection) or die(“选择数据库失败”);

mysql_query(“set names’utf-8′”); //utf8

set_time_limit(0);//防止超时。

$querysql = “select * from dianping ” ; //

$queryresult = mysql_query($querysql) or die(“查询数据失败”);//执行查询

while($row = mysql_fetch_array($queryresult)){

$array = decode($row[‘map’]);

$string = $array[‘0’].”,”.$array[‘1’];

echo $string.”

”;

$id = $row[‘id’];

$UpdateQuery = “update dianping set map = ‘$string’ where id = ‘$id’”;

$UpdateQueryResult = mysql_query($UpdateQuery) or die(“查询数据失败”); //执行查询

}

/*发现有时候坐标字符串会改变,但是转换出来的坐标不会变。

$poi = ‘IJJTHFZVITEBVS’;

$poi1 = ‘IJJTGDZVITEBVA’;

$poiss = decode($poi);

$poiss1 = decode($poi1);

print_r($poi).’

\n’;

print_r($poiss).’

\n’;

print_r($poi1).’

\n’;

print_r($poiss1);

*/

function decode($poi) {

$settings = array(

‘digi’=> 16,

‘add’=> 10,

‘plus’=> 7,

‘cha’=> 36,

‘center’=> array(

‘lat’=> 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<$j; $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;

return array($lng, $lat);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。