2012-03-25 44 views
0

在我正在构建的项目上,我希望用户能够选择存储在数据库中的地址,然后单击该地址查看更多信息。当用户点击链接时,它会将他们带到另一个显示更多信息的页面,以及地址的地图。如何动态更新Bing地图或Google地图,具体取决于给定的地址

我想要做的是让地图动态定位地址,而不是使用预定义的嵌入链接。但是我不完全确定我想做什么可以完成,如果可以完成,我不知道该怎么做。

所以基本上,我想知道如何从数据库中获取地址,并将其传递给我的项目中的嵌入式地图?

如果使用Bing或Google,对我没有什么影响。

干杯!

回答

1

是你想要的东西可以很容易地完成。 Bing MapsGoogle Maps均提供地理编码服务,您在该服务中为地址提供服务,服务将返回地图上地址的结果经度和纬度坐标的一部分。我可以在这里粘贴一堆代码,但是您可以在上面的链接中找到您需要的所有代码示例。

当用户点击您的地址链接时,您将它们带到您的详细信息页面。在该页面上,您将使用JavaScript来设置您的地图。除了设置地图的JavaScript之外,您还需要更多的JavaScript(详见上述链接)调用地理位置服务。从本质上讲,您向服务传递您要查找的地址,如果地址有效,服务会将该地址的经度和纬度坐标返回给您。使用这些信息,您可以缩放到地图上的该位置,并可以选择在其中放置图钉来指示地址。

在谷歌地图这里查看这里的example

Interactive SDK of Bing Maps单击REST Services - >通过查询查找位置。

我假设你对地图控件的ajax版本感兴趣,但其他版本应该是非常相似,应该或多或少相同。

+0

谢谢你所有这些,让我惊讶的是这些地图服务有多么强大!我已经探索过Bing了,因为我比Google更喜欢地图的外观。再次感谢! – mickburkejnr 2012-04-18 17:15:25

+0

@mickburkejnr没问题。有一点需要记住的是,如果你想要在你的应用程序中使用商业应用程序,Bing Maps一般比谷歌地图要便宜得多。不过,Google地图目前比Bing地图拥有更好的Ortho图像。 – 2012-04-18 17:30:09

+0

我会牢记这一点。非常感谢! – mickburkejnr 2012-04-19 09:31:14

0

你总是可以做这样的事情:

<div id="location"></div> 

<script type="text/javascript"> 
    function initialize() { 
     var gpLatlng = new google.maps.LatLng(latitude, longitude); 
     var gpOptions = { 
      zoom: 15, 
      center: gpLatlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 
     var map = new google.maps.Map(document.getElementById("location"), gpOptions); 

     var marker = new google.maps.Marker({ 
      position: gpLatlng, 
      map: map, 
      title:"Title" 
     }); 
    } 

    function loadScript() { 
     var script = document.createElement("script"); 
     script.type = "text/javascript"; 
     script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=initialize&region=GB"; 
     document.body.appendChild(script); 
    } 

    window.onload = loadScript; 
</script>