1

所以我正在制作一个简单的网站,其初始功能如下:

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

现在这听起来很简单,但我在基础知识方面遇到了一些麻烦。这或多或少是我第一次涉足 Web 开发,所以我正在尝试学习 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 文件。用户按下“上传”按钮。文件被上传,然后立即用于初始化显示他们移动的地图。

我可能写得太多了,但我认为写得太多总比写得不够好。提前感谢您的建议。

4

1 回答 1

1

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

编辑:你写道:

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

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

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

是的。

编辑2:

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

第 1 步:文档中的此示例显示如何显示 kml 文件,将“http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml”的引用替换为对 kml 文件的引用你想显示。

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

于 2012-07-15T12:43:57.990 回答