Google maps 数据库而不是kml文件

Google maps 数据库而不是kml文件,google-maps,google-maps-api-3,kml,Google Maps,Google Maps Api 3,Kml,我想知道,是否可以将db连接到google maps api以渲染多边形、点等? 如果存储所有连接到多边形的kml坐标,是否可以将其渲染到fra数据库,或者我是否需要创建一个kml文件来可视化它 有什么例子吗 谢谢 使用Google Maps API可视化点、多边形等不需要KML文件。但是,KML图层是表示复杂地理空间要素的有用方法 具有HTTP访问权限的后端数据库可以返回地图坐标列表,您的客户端代码可以使用Google Maps API将其渲染为适当的形状 GoogleMapsAPI提供了创建

我想知道,是否可以将db连接到google maps api以渲染多边形、点等? 如果存储所有连接到多边形的kml坐标,是否可以将其渲染到fra数据库,或者我是否需要创建一个kml文件来可视化它

有什么例子吗


谢谢

使用Google Maps API可视化点、多边形等不需要KML文件。但是,KML图层是表示复杂地理空间要素的有用方法

具有HTTP访问权限的后端数据库可以返回地图坐标列表,您的客户端代码可以使用Google Maps API将其渲染为适当的形状

GoogleMapsAPI提供了创建各种形状的示例

创建简单点标记的示例:

创建简单多边形的示例:

客户机代码需要从数据库中查询数据,例如从访问数据库的servlet中查询数据。数据库很可能运行在不同的端口上或来自不同的服务器,因此javascript无法直接访问它


服务器端组件可以查询数据库并返回格式化的KML,也可以返回客户端代码将呈现的JSON结果。取决于是否要在客户端上编写更多后端服务器代码或JavaScript代码。

hmmm。。。我现在正在使用另一个解决方案(数据库中的数据将显示在Google earth上,这是KML文件的默认应用程序),希望这有助于:

(可以参考)(另外,在我的另一页中,还有示例java代码)

详情如下:

准备一个RestFul服务,从DB生成KML文件(KML示例如上面链接中所示)

我的另一个jsp代码将生成一个KMZ文件,该文件有一个指向Restful服务的链接。KMZ文件具有onInterval(如底部所示)

Jsp网页允许用户下载KMZ文件

当Google Earth打开KMZ文件时,Google Earth将自动刷新以从Restful服务获取新数据

每次刷新时,服务器将向GE发送最新更新的KML数据和新数据

KMZ样本:

     <?xml version="1.0" encoding="UTF-8"?>
      <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" 
      xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
      <NetworkLink> 
      <name>Dennis_Chen_Canada@Hotmail.com</name> 
      <open>1</open> 
      <Link> 
      <href>http://localhost:9080/google-earth-project/rest/kml/10001/20002</href> 
      <refreshMode>onInterval</refreshMode> 
      </Link>
      </NetworkLink>
      </kml>

陈丹宁_Canada@Hotmail.com 
1.
http://localhost:9080/google-土方工程/rest/kml/10001/20002
内部

结果如下:

谢谢你的回答。我不知道我是否对此有所了解,但至少我知道这是可能的

我使用Shape2Sql将坐标保存在数据库中

但据我所知,我需要某种方法将其转换为geojson,然后才能在谷歌地图中呈现?如果我理解正确的话? 据我所知,当涉及到文件时,呈现geojson与呈现kml基本相同。但我不知道如何连接到数据库

我从数据库中列出一个列表:

var adresses = _unitOfWork.GeoAddressRepository.Get(q => q.GeoRouteNorpost.Code == "3007106", includeProperties: "GeoRouteNorpost").ToList();

        var points = new List<LatLong>();

           foreach  (var address in adresses)
           {
               points.Add(new LatLng() { Lat = "59.948261", Lng = "10.750699" });
               points.Add(new LatLng() { Lat = "59.943128", Lng = "10.755814" });
               points.Add(new LatLng() { Lat = "59.941245", Lng = "10.746084" });
               points.Add(new LatLng() { Lat = "59.943527", Lng = "10.742786" });
               points.Add(new LatLng() { Lat = "59.946824", Lng = "10.744435" });
               points.Add(new LatLng() { Lat = "59.946813", Lng = "10.744446" });
               points.Add(new LatLng() { Lat = "59.947107", Lng = "10.748241" });
               points.Add(new LatLng() { Lat = "59.947827", Lng = "10.749525" });
               points.Add(new LatLng() { Lat = "59.948248", Lng = "10.750699" });



           }
var address=\u unitOfWork.GeoAddressRepository.Get(q=>q.GeoRouteNorpost.code==“3007106”,includeProperties:“GeoRouteNorpost”).ToList();
var points=新列表();
foreach(地址中的var地址)
{
添加(新的LatLng(){Lat=“59.948261”,Lng=“10.750699”});
添加(新的LatLng(){Lat=“59.943128”,Lng=“10.755814”});
添加(新的LatLng(){Lat=“59.941245”,Lng=“10.746084”});
添加(新的LatLng(){Lat=“59.943527”,Lng=“10.742786”});
添加(新的LatLng(){Lat=“59.946824”,Lng=“10.744435”});
添加(新的LatLng(){Lat=“59.946813”,Lng=“10.744446”});
添加(新的LatLng(){Lat=“59.947107”,Lng=“10.748241”});
添加(新的LatLng(){Lat=“59.947827”,Lng=“10.749525”});
添加(新的LatLng(){Lat=“59.948248”,Lng=“10.750699”});
}
此示例显示地图上的多边形。但我不知道如何从数据库中获取坐标,以及当它是多个多边形时如何解决它

正如我所写的,我用shape2Sql将坐标保存在数据库中。现在我有了一个几何域。如果我查看sql server中的空间结果,这看起来是正确的。但是我怎样才能在谷歌地图上显示呢


我非常感谢大家的帮助:)

你的问题太宽泛了。快速回答:是的,你可以。正如下面@JasonM1所建议的,您需要一个客户机-服务器解决方案来查询数据库(服务器端)并在地图上渲染多边形(客户端)。