Google maps 开发基于位置/地图的网站

Google maps 开发基于位置/地图的网站,google-maps,geolocation,gps,Google Maps,Geolocation,Gps,我想开始开发一个基于地图的网站。 起初我订购了一台regulat Gps设备只是为了测试网站,后来我想使用Iphone的Gps和其他手机设备。 所以我需要一些很普通的东西 我在网上搜索基于地图的开发框架,找到了太多: 地理服务器、地图服务器、开放层、Geoext、谷歌地图的api等等 我不是一个经验丰富的Web开发(更多的是C++类的人),所以我需要一些非常简单的东西,虽然同时也很健壮。 此外,我需要一个是免费的,不会有许可证问题的道路上 首先,我只需要在我的网站上实时显示gps数据的基本功能

我想开始开发一个基于地图的网站。 起初我订购了一台regulat Gps设备只是为了测试网站,后来我想使用Iphone的Gps和其他手机设备。 所以我需要一些很普通的东西

我在网上搜索基于地图的开发框架,找到了太多: 地理服务器、地图服务器、开放层、Geoext、谷歌地图的api等等

<>我不是一个经验丰富的Web开发(更多的是C++类的人),所以我需要一些非常简单的东西,虽然同时也很健壮。 此外,我需要一个是免费的,不会有许可证问题的道路上

首先,我只需要在我的网站上实时显示gps数据的基本功能

有经验的人能推荐一个吗


谢谢

我建议您使用谷歌地图API在浏览器中呈现地图。你可以找到我的理由


当前版本的API支持。我使用Bing Maps for mobile。主要是因为它的速度快,并且为英国提供了比谷歌地图更好的地图、3d模型和卫星视图

我也遇到过谷歌改变服务以提供一些增强功能的问题,它破坏了我的应用程序,至少通过Bing API,现有应用程序的兼容性有所提高。并不是说我不喜欢谷歌地图,我喜欢。这是我的备份服务

我从这两个供应商生成地图,Bing作为主要供应商,Goole作为次要供应商。。。这意味着,如果离线用户无法工作,我的用户仍然可以使用我的应用程序


客户机

我会选择OpenLayers——这是一个开源JavaScript客户端库,类似于GoogleMapsAPI或BingAPI。然而,OpenLayers将使您不必担心任何许可问题,或者在源代码可用且可以修改时更改API—Google/Bing/Yahoo API并非如此。但是,您可以将这些服务中的数据用作OpenLayers中的层,如果它们突然被广告填满或受到商业限制,则可以删除它们

请看一看示例,看看是否有一个可用于制作第一个测试应用程序的示例-

GeoExtJS是一个与OpenLayers一起工作的额外工具和小部件的集合,构建在另一个JavaScript框架ExtJS(也是开源的)之上。ExtJS主要用于构建用户界面——数据输入表单、网格等,使用JavaScript在浏览器中显示

如果您正在寻找树结构来打开和关闭层以及其他更高级的UI小部件,那么GeoExtJS值得研究

服务器

如果只显示点,则可以在web服务器上创建动态KML或GeoJSON,并在OpenLayers中引用。有各种语言的库可供构建。Python已经成为地理空间技术中的一种关键语言,并且拥有可以编写脚本的GeoJSON库

GeoServer和MapServer都是服务器端程序,允许您使用符号、标签等从数据库中提供空间数据。如果您有许多不同的数据集,那么花时间进行设置是值得的

MaServer是用C++编写的,所以你尝试起来可能更容易——但是你可以在不需要任何专业服务器端软件的情况下逃脱,特别是如果你的数据由X、Y/Lon、LAT值组成,这些值可以很容易地绘制为点。p> 我想看看。他们有许多API、免费选项、付费选项,并使用OpenStreetMap,这在许多地方是最精确的地图解决方案之一

首先(你说需要实时显示gps位置),我认为这是一个不错的选择。这个解决方案有非常简单的API,社区支持也是一个优势(我从未与其他东西相比,但我对GMAP及其教程/资源有很好的经验)。这是针对客户端的,对于服务器端,任何web框架都应该完成这项工作(我使用Django,它还为一些地理方面的事情提供了dupport—在本回答后面提到)

您可能需要构建遵循以下规则的应用程序:

  • GPS设备定期向服务器(web应用程序)发送数据,数据存储在数据库中
  • 用户使用浏览器显示带有地图的数据(如Google地图),地图会在预定的时间间隔内定期更新位置(如ajax调用服务器获取最新位置)。每次收到响应时,地图都需要更新
  • 我不知道是否有更专门的解决方案

    如果你需要改进你的应用程序并添加一些特性,你需要考虑一些更复杂的地理框架。我听到了一些积极的意见,主要是因为它可以很容易地融入(这是一个非常容易学习的web框架,它有很多功能)

    我在这里提到的所有技术都是免费的。

    免费、开源: www.openstreetmap.org

    您也可以使用相同的技术构建自己的服务器:


    API:

    尽管它仍然是草案形式,HTML5将提供支持。在不久的将来,大多数主流浏览器和手持设备都应该支持它,这将使想要独立于服务的解决方案的开发人员的生活更加轻松。然而,如果你需要显示位置,你仍然需要像谷歌地图这样的地图服务

    function showMap(position) {
      // Show a map centered at (position.coords.latitude, position.coords.longitude)
    }
    
    // One-shot position request.
    navigator.geolocation.getCurrentPosition(showMap);
    
    编辑:

    它已在多个主要浏览器中得到支持:

    • Mozilla Firefox:在Firefox中受支持 3.5及更高版本
    • Chrome:通过Google Gears提供支持 地理定位API
    • 歌剧院:支持 夜间建造
    • Safari:支持是必要的 即将在IPhone的Safari中发布 浏览器
    • Internet Explorer: 实验支持可从 IE8