帖上PHP转换代码
/**
* 中国正常GCJ02坐标---->百度地图BD09坐标
* 腾讯地图用的也是GCJ02坐标
* @param double $lat 纬度
* @param double $lng 经度
*/
function Convert_GCJ02_To_BD09($lat,$lng){
$x_pi = 3.14159265358979324 * 3000.0 / 180.0;
$x = $lng;
$y = $lat;
$z =sqrt($x * $x + $y * $y) + 0.00002 * sin($y * $x_pi);
$theta = atan2($y, $x) + 0.000003 * cos($x * $x_pi);
$lng = $z * cos($theta) + 0.0065;
$lat = $z * sin($theta) + 0.006;
return array('lng'=>$lng,'lat'=>$lat);
}
/**
* 百度地图BD09坐标---->中国正常GCJ02坐标
* 腾讯地图用的也是GCJ02坐标
* @param double $lat 纬度
* @param double $lng 经度
* @return array();
*/
function Convert_BD09_To_GCJ02($lat,$lng){
$x_pi = 3.14159265358979324 * 3000.0 / 180.0;
$x = $lng - 0.0065;
$y = $lat - 0.006;
$z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);
$theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);
$lng = $z * cos($theta);
$lat = $z * sin($theta);
return array('lng'=>$lng,'lat'=>$lat);
}
var map = new BMap.Map("map");
var lng = $("input[name='lng']").val();
var lat = $("input[name='lat']").val();
lng = lng > 0 ? lng: 116.404;
lat = lat > 0 ? lat: 39.915;
var point = new BMap.Point(lng,lat);
map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
map.enableContinuousZoom(); //启用地图惯性拖拽,默认禁用
map.centerAndZoom(point, 11);
map.addEventListener("click", function(e){
ediell(e.point.lng,e.point.lat)
var now_point = new BMap.Point(e.point.lng, e.point.lat );
marker.setPosition(now_point);//设置覆盖物位置
alert('当前经度:'+e.point.lng+' , 纬度: '+e.point.lat);
});
var marker = new BMap.Marker(point); //创建marker对象
marker.enableDragging(); //marker可拖拽
//拖拽结束事件
marker.addEventListener("dragend", function(e){
//返回覆盖物标注的地理坐标。
var o_Point_now = marker.getPosition();
ediell(o_Point_now.lng,o_Point_now.lat)
alert('当前经度:'+o_Point_now.lng+' , 纬度: '+o_Point_now.lat);
});
map.addOverlay(marker);
function ediell(lng,lat){
$("input[name='lng']").val(lng);
$("input[name='lat']").val(lat);
}
$("#ln").click(function(){
var province = addAdressDom.find('select[name="province"]').find("option:selected").text();
var city = addAdressDom.find('select[name="city"]').find("option:selected").text();
var area = addAdressDom.find('select[name="county"]').find("option:selected").text();
if(province.length <1 || city.lenght < 1){
motify.log('请选择省,市,县');return false;
}
var addressDom = addAdressDom.find('input[name="address"]');
var address = $.trim(addressDom.val());
var keyword = province+city+area+address;
console.log(keyword);
var localSearch = new BMap.LocalSearch(map);
localSearch.enableAutoViewport();
//map.clearOverlays();//清空原来的标注
localSearch.setSearchCompleteCallback(function (searchResult) {
var poi = searchResult.getPoi(0);
//document.getElementById("result_").value = poi.point.lng + "," + poi.point.lat;
map.centerAndZoom(poi.point, 11);
var now_point = new BMap.Point(poi.point.lng, poi.point.lat);
marker.setPosition(now_point);
ediell(poi.point.lng,poi.point.lat)
//var content = document.getElementById("text_").value + "<br/><br/>经度:" + poi.point.lng + "<br/>纬度:" + poi.point.lat;
//var infoWindow = new BMap.InfoWindow("<p style='font-size:14px;'>" + content + "</p>");
//marker.addEventListener("click", function () { this.openInfoWindow(infoWindow); });
// marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
});
localSearch.search(keyword);
});
if(callbackObj) callbackObj();
<script type="text/javascript">
var options = {
enableHighAccuracy:false,
timeout:8000,
maximumAge:1000
}
var long = 0;
var lat = 0;
navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
function onSuccess(position){
var long = position.coords.longitude;
var lat = position.coords.latitude;
alert(long+'=>'+lat);
console.log(position);
}
function onError(error) {
console.log(error);
}
</script>
JS新API标准 地理定位
详细参数