// 将google地图、soso地图、aliyun地图、mapabc地图和amap地图
// 所用坐标转换成百度坐标
CoordinateConverter converter = new CoordinateConverter()converter.from(CoordType.COMMON)// sourceLatLng待转换坐标 converter.coord(sourceLatLng)
LatLng desLatLng = converter.convert()
你想要现成的是吧。好的,我给你写,以下代码复制下来,运行就能出效果
<!DOCTYPE html><html>
<head>
<meta charset="utf-8" />
<title></title>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
</head>
<body>
<div id="allmap" style='width:100% height:500px'></div>
<div class="info"></div>
<script src="http://api.map.baidu.com/api?v=2.0&ak=ysHscdqZCVZXG4ipXgXou2Wt"></script>
<script>
var map = new BMap.Map("allmap")
var geol = new BMap.Geolocation()//Geolocation 就是用来获取到当前设备的经纬度,获取设备地理位置的可编程的对象
geol.getCurrentPosition(function (rs) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
//初始化
var point = new BMap.Point(rs.point.lng, rs.point.lat)
map.centerAndZoom(point, 60)
// 创建标注,为要查询的地址对应的经纬度
var marker = new BMap.Marker(point)
map.addOverlay(marker)
//坐标转地名
var geoc = new BMap.Geocoder()
geoc.getLocation(point, function (rp) {
var addComp = rp.addressComponents
document.querySelector('.info').innerHTML=addComp.province + ", " + addComp.city + ", " + addComp.district+ ", " + addComp.street + ", " + addComp.streetNumber
})
}
}, { enableHighAccuracy: true })
</script>
</body>
</html>
可以的,比如google map通过获取mousedown事件而得到单击时的mouse坐标,然后根据map的坐标可以得到相应的地理位置,这个功能全部封装在了一个对象中进行处理的,如Gmap对象等等.当然Gmap是google map API的内容,但对于个这对象在封装过程中,是不需要一个地理位置向mouse中坐标的一个转化,所以封装的对象中是找不到这个的具体的某个方法去实现你的过程的.但返回过来可以求行相应的屏幕坐标时,对象是一个一体化的方式,比如你在地图中标志了某个位置,那个这个位置是一个地理位置,当然会随着你的地图的缩放与平移等不断的变化,且位置是相对于屏幕有变化的,这个实现提示我们可以达到你所说的功能的!
问题是我们怎么实现是我们最关心的.
以google map API为例,地理信息与标记信息并不在一个层上,他们有一个求出相对的整个地图的中心的函数,根据缩放级别也可以求出显示地图的大小范围,是从地理位置的某个点(地图的左上角)到别一个地址位置(右下角)来确定的,而这个信息是对象提供的,这样,可以根据比例求出当然你所提供的地理位置所以在地图的上比例位置,当然这个就是转向化像素点是非常容易的,而相求出这个点的具体的屏幕坐标也非常容易了,只需要求出地图左上角的屏幕位置与地址位置相对于左上角的屏幕像素,这个点的屏幕位置也非常容易了!
能看明白不?