【各位大神速来,急急急】根据经纬度转换省市名称

和永恒有關 2010-10-15 04:42:56
现在做的一个项目是在Google Map 上显示车辆行驶过的城市用线连接起来
这些都OK了,可是还有个附加功能,就是根据经纬度获取省市名称。
找了半天Google Map API貌似没有这种转换方法。


我自己想了想:是否应该在数据库建一个表,存储各个城市的经纬度,然后和获取的相比较。可问题是项目中的经纬度是根据两颗卫星定位传输过来的。精确到小数点后7位,那么比较的过程中就会很纠结了。觉得行不通。

请问Google Map API中有类似转换方法么?
或者请各位提供个思路。

感谢
...全文
695 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
will_liang 2011-01-20
  • 打赏
  • 举报
回复
<script src="http://maps.google.com/maps?

file=api&v=2&key=ABQIAAAAZNVcM3B5rUU5SJeXURUaBxTBfUk9TZrBRaIteybtnU2KziHEpRTn4b5CncoKZUG6YvDa1nKeST_

Y5A"
type="text/javascript"></script>
will_liang 2011-01-20
  • 打赏
  • 举报
回复
插入java

var geocoder = null;
function addAddressToMap(response) {
if (!response || response.Status.code != 200) {
alert("对不起,不能解析这个地址");
} else {

var add="";
for(var i=0;i<response.Placemark.length;i++)
{
add+=response.Placemark[i].address+" | ";
}
alert("您查找的位置是 : " + add);
}
}
function showLocation(address) {

if (GBrowserIsCompatible()) {
geocoder = new GClientGeocoder();
geocoder.getLocations(address, addAddressToMap);
}
}

showLocation('29.82039127614494,116.4162826538086');
和永恒有關 2010-10-20
  • 打赏
  • 举报
回复
这个看似很深啊,楼主得到答案以后分享一下吧



已解决
http://topic.csdn.net/u/20101020/11/20c15f99-3fd1-480f-9108-4bee2aad3874.html
和永恒有關 2010-10-16
  • 打赏
  • 举报
回复
谢谢诸位道友了。可貌似还是没有解决阿。小弟很蛋疼
幕夜 2010-10-15
  • 打赏
  • 举报
回复
我以前做过好像可以用地名解释成经纬度,反过来应该也会有解释的方法吧!
马老虎 2010-10-15
  • 打赏
  • 举报
回复
貌似有难度。。。
kkbac 2010-10-15
  • 打赏
  • 举报
回复


看错.好像不是google map的代码.
kkbac 2010-10-15
  • 打赏
  • 举报
回复
都是网络搜索结果.

试试
public List<Address> getFromLocation

或者
//从地址Geopoint取得Address
public String getAddressbyGeoPoint(GeoPoint gp)
{
String strReturn = "";
try
{
/* 创建GeoPoint不等于null */
if (gp != null)
{
/* 创建Geocoder对象,用于获得指定地点的地址 */
Geocoder gc = new Geocoder(Map_index.this, Locale.getDefault());

/* 取出地理坐标经纬度*/
double geoLatitude = (int)gp.getLatitudeE6()/1E6;
double geoLongitude = (int)gp.getLongitudeE6()/1E6;

/* 自经纬度取得地址(可能有多行)*/
List<Address> lstAddress = gc.getFromLocation(geoLatitude, geoLongitude, 1);
StringBuilder sb = new StringBuilder();

/* 判断地址是否为多行 */
if (lstAddress.size() > 0)
{
Address adsLocation = lstAddress.get(0);

for (int i = 0; i < adsLocation.getMaxAddressLineIndex(); i++)
{
sb.append(adsLocation.getAddressLine(i)).append("\n");
}
sb.append(adsLocation.getLocality()).append("\n");
sb.append(adsLocation.getPostalCode()).append("\n");
sb.append(adsLocation.getCountryName());
}

/* 将取得到的地址组合后放到stringbuilder对象中输出用 */
strReturn = sb.toString();
}
}
catch(Exception e)
{
e.printStackTrace();
}
return strReturn;
}

和永恒有關 2010-10-15
  • 打赏
  • 举报
回复
5L
嗯,好的,得到答案后肯定会分享撒~~
和永恒有關 2010-10-15
  • 打赏
  • 举报
回复
1L,3L的方法我想一想。有没有人知道API呢 0.0

4L
数据库中直接是通过卫星获取的地图坐标
我觉得也应该有相应API可是没找到 - -
BIRD72sky 2010-10-15
  • 打赏
  • 举报
回复
这个看似很深啊,楼主得到答案以后分享一下吧
baishi1987 2010-10-15
  • 打赏
  • 举报
回复
你应该把窗体坐标转换为地图坐标后,再比较。Google earth肯定有这个转换接口
int64 2010-10-15
  • 打赏
  • 举报
回复
1的方法应该可行,
图不用显示出来,只是根据你的坐标,找到图上对应的点的颜色值,根据颜色值判断是那个城市
和永恒有關 2010-10-15
  • 打赏
  • 举报
回复
那个界面要求的是纯表格,没有地图。可能没说清楚

道友的方法我是用不成了。

不是不想给多了。是穷啊
kkbac 2010-10-15
  • 打赏
  • 举报
回复

做游戏地图的时候有种办法就是.

做一个只有纯色的图片(白色,黑色,蓝色,红色....).
之后根据坐标点, 判断此图片区域的颜色.
之后返回不同的数据.

lz可以用纯色画一个中国的各省,各城市的地区.

根据经纬度判断图片上的坐标点的颜色.
之后根据不同颜色判断不同的省市区.

貌似问题分太少了.没什么吸引力啊.

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧