从最近上传的KML文件初始化Google Maps API

时间:2012-07-14 16:41:43

标签: php html google-maps-api-3 kml

所以我正在创建一个简单的网站,其初始功能就是:

用户将KML文件上传到网站。使用此KML文件初始化Google Maps API,以便显示地图及其最近的动作。

现在这听起来非常简单,但我在基础知识方面遇到了一些麻烦。这或多或少是我第一次涉足网络开发,所以我正在尝试学习HTML,CSS,AJAX,PHP,Google Maps API V3,当然还有KML文件格式。

要使用KML文件初始化Google Maps API,必须首先设置一些基本信息,例如:

function initialize() {
  var myLatlng = new google.maps.LatLng(40.65, -73.95);
  var myOptions = {
    zoom: 12,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

这里要看的重点是地图的中心位置。

除此之外,还必须指定要使用的KML文件:

var nyLayer = new google.maps.KmlLayer(
      'http://www.searcharoo.net/SearchKml/newyork.kml',
      {  suppressInfoWindows: true,
         map: map});

这些当然只是示例,而不是我将使用的数据。

现在我的问题是这样的。这些值似乎是预先确定的和静态的。要初始化Google Maps API,需要事先知道这些值。但在我的情况下,直到用户上传KML文件时才会知道这些值。

到目前为止,我有一个简单的PHP脚本来处理文件上传。我不知道如何将控制权传递给包含Google地图设置的JavaScript,或者如何编写此代码,以便仅在文件上传后才知道的值用于初始化地图。

总之,我的意思是:

用户浏览KML文件。用户按“上传”按钮。文件已上传,然后立即用于初始化显示其移动的地图。

我可能写得太多,但我觉得最好写得太多而不是写得太多。提前感谢您的建议。

1 个答案:

答案 0 :(得分:1)

根据您发布的代码段,KmlLayer应居中并缩放以显示kml文件的内容。如果没有这样做,请提供足够的信息来重现问题(kml文件和显示它的html / js文件)。

编辑: 你写道:

  

我需要我的php文件上传脚本来保存KML文件的名称,   然后以某种方式我需要提取有关地图应居中的位置的信息,

除非您不喜欢中心的默认行为并缩放地图以显示kml的所有内容,否则您不需要这样做

  

然后调用Google Maps API(我认为是JavaScript)   我刚刚提取的信息。   这一切都需要按一下上传按钮完成。

是。

EDIT2:

  

好的,但是怎么样?我不知道该怎么办。这是我第一次尝试开发Web。   我不是要求别人为我编写代码,而是指示如何执行此操作

第1步:This example from the documentation显示了如何显示kml文件,将“http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml”的引用替换为引用要显示的kml文件。

第2步:更改你的php以生成加载所需的html和javascript,并在单击按钮时显示它。它的工作原理取决于您要在页面上显示它的位置,以及您是否希望它是单击按钮,新窗口或其他内容时显示的隐藏div。