Javascript 谷歌地图地理编码器不如谷歌地图准确

Javascript 谷歌地图地理编码器不如谷歌地图准确,javascript,google-maps-api-3,geocoding,Javascript,Google Maps Api 3,Geocoding,我有一个数据库,其中包含精确到建筑级别的地址。当我将这些手动输入到谷歌地图的搜索中时,谷歌地图发现它们没有问题——标记正好出现在正确的建筑上。然而,当我使用下面的代码将这些相同的地址传递给GoogleMapsAPI地理编码器时,标记只显示在街道上,而不显示在建筑物上 如何提高准确性 HTML/PHP: <div id="addressline"><?php echo theaddress(); ?></div> 谷歌地图使用许多不同的数据源在地图上定位搜索结

我有一个数据库,其中包含精确到建筑级别的地址。当我将这些手动输入到谷歌地图的搜索中时,谷歌地图发现它们没有问题——标记正好出现在正确的建筑上。然而,当我使用下面的代码将这些相同的地址传递给GoogleMapsAPI地理编码器时,标记只显示在街道上,而不显示在建筑物上

如何提高准确性

HTML/PHP:

<div id="addressline"><?php echo theaddress(); ?></div>

谷歌地图使用许多不同的数据源在地图上定位搜索结果

您看到的“正确”条目是一个Places数据库条目。查看并输入搜索字符串(圣克莱门特教堂、边缘巷、科尔顿、M21 9JF)

geocoder Get用于返回邮政地址的坐标,字符串中没有足够的信息,无法返回准确的结果:

看起来它只是返回了邮政编码的地理编码:

Manchester M21 9JF, UK (53.4414411, -2.285287100000005)
看起来地理编码器确实有这个位置。如果我使用“圣克莱门特教堂,边缘巷”,它似乎得到了“屋顶”地理编码(尽管它报告“近似”)

代码片段:

var地理编码器、地图、服务、信息窗口、边界;
函数初始化(){
map=新建google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var请求={
查询:“圣克莱门特教堂,乔尔顿边缘巷,M21 9JF”
}
infowindow=new google.maps.infowindow();
服务=新的google.maps.places.PlacesService(地图);
bounds=新的google.maps.LatLngBounds();
文本搜索(请求、回调);
}
google.maps.event.addDomListener(窗口“加载”,初始化);
函数回调(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
对于(var i=0;i
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}

谷歌地图使用许多不同的数据源在地图上定位搜索结果

您看到的“正确”条目是一个Places数据库条目。查看并输入搜索字符串(圣克莱门特教堂、边缘巷、科尔顿、M21 9JF)

geocoder Get用于返回邮政地址的坐标,字符串中没有足够的信息,无法返回准确的结果:

看起来它只是返回了邮政编码的地理编码:

Manchester M21 9JF, UK (53.4414411, -2.285287100000005)
看起来地理编码器确实有这个位置。如果我使用“圣克莱门特教堂,边缘巷”,它似乎得到了“屋顶”地理编码(尽管它报告“近似”)

代码片段:

var地理编码器、地图、服务、信息窗口、边界;
函数初始化(){
map=新建google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var请求={
查询:“圣克莱门特教堂,乔尔顿边缘巷,M21 9JF”
}
infowindow=new google.maps.infowindow();
服务=新的google.maps.places.PlacesService(地图);
bounds=新的google.maps.LatLngBounds();
文本搜索(请求、回调);
}
google.maps.event.addDomListener(窗口“加载”,初始化);
函数回调(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
对于(var i=0;i
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}


基本上有一个名字和地址。对于同一位置,Google数据库可以有其他名称。你可以在这里阅读我的答案:。在google响应中,您需要循环搜索placemark对象以找到最相似的位置。

基本上有一个名称和地址。对于同一位置,Google数据库可以有其他名称。你可以在这里阅读我的答案:。在google响应中,您需要循环搜索placemark对象以找到最相似的位置。

如果您已经找到了正确的位置,为什么要使用地理编码器?你确定谷歌地图报告的位置不是来自Places数据库的条目,而是地理编码器的条目吗?你能举个例子吗?我没有纬度/经度,只有表格中的地址:123 Road,City,P05T C0D3你有一个示例地址来说明问题吗?是的,这是一个教堂。它在谷歌地图上显示得很好,但API指向了附近靠近道路的一个地点:圣克莱门特教堂、边缘巷、科尔顿、M21 9JF如果你已经找到了正确的位置,为什么要使用地理编码器?你确定谷歌地图报告的位置不是t的条目吗
St Clement's Church, 6 Edge Ln, Manchester, Lancashire M21 9JF, UK (53.4406823, -2.283755499999984)