所以我正在创建一个简单的网站,其初始功能就是:
用户将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文件。用户按“上传”按钮。文件已上传,然后立即用于初始化显示其移动的地图。
我可能写得太多,但我觉得最好写得太多而不是写得太多。提前感谢您的建议。
答案 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。