谷歌地图中的多个地址(不是LatLongs)
Multiple addresses (not LatLongs) in Google Maps
女士们,先生们,
长版我有一个数据库的地址,我需要在谷歌地图上绘制,并嵌入我的网页。地址以文本形式显示,而不是LatLong,所以:
《芝麻街22号,小村庄,小镇,AB1 9YZ》
就像我说的,我有很多这样的,它们都需要绘制在一张地图上。
我很高兴使用jQuery/Javascript, PHP, XML等来做它。
我看到很多网站这样做,看起来很容易,例如:
- Yell.com
但是,我不知道Yell是使用了latlong还是使用了完整地址。不管怎样,我手头只有地址。
短版
需要在一个谷歌地图窗口中绘制多个文本地址,并将其嵌入我的网站。
免责声明
我在网上搜了一个多星期,找不到一个明确的答案。我确实发现可能被归类为答案(不,不可能),但我发现这很难相信在这个时代,我们现在可以相对容易地对一个网站做些什么。
也许我太乐观了…
你能给的任何帮助都是绝对宝贵的,非常感谢!
非常感谢!
丹!
您需要将地理编码您的地址,即将它们转换为lat/lng坐标,然后添加它们。
如果你已经在使用谷歌,显而易见的选择是使用谷歌的地理编码器。
您可以使用服务器端Google Maps Geocoding API,如果您创建一个帐户和一个API密钥,您可以像这样对地址进行地理编码:
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=API_KEY
返回的JSON,除其他事项外,包括一个lat/lng。把它放在你的地图上。
或者(这通常是一个更好的解决方案),您可以使用内置于javascript api中的客户端javascript地理编码器,其方式类似于以下:
var geocoder = new google.maps.Geocoder();
var address = "Mountain View, CA"
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
// results contains multiple locations, ordered by estimated relevance
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
本文提供了一个很好的客户端策略示例。
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Node.js v6.2.0类扩展不是函数错误
- 直接下载文件,而不是从window.open(url)
- 使用压缩的JavaScript文件(不是运行时压缩)
- 控制台返回var不是't定义,但它是
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 为什么不是't运行此Javascript的Chrome
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 禁用(而不是隐藏)浏览器滚动条
- 为什么会出现错误,“UncaughtTypeError:undefined不是函数”
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 推荐在JavaScript中执行存储为字符串的函数,而不是使用eval
- //而不是在src=“”上使用http://"属性
- servlet中的请求对象,而不是从jsp接收参数值
- 谷歌地图中的多个地址(不是LatLongs)