gpt4 book ai didi

javascript - downloadUrl 函数不适用于使用 opencart 创建谷歌地图定位器

转载 作者:行者123 更新时间:2023-11-28 07:50:35 24 4
gpt4 key购买 nike

我正在使用opencart开发http://www.goskitz.com.au/index.php?route=information/dealers

在 Dealers.php 文件中,有一个名为 query() 的函数,它将从数据库中搜索邮政编码以获取商店位置结果,并将其输出为 XML 格式。例如,如果我输入 3000 并选择墨尔本,则 xml 输出将为:

函数查询():

public function query(){
// the query coding part is removed
// Output to XML
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);

header("Content-type: text/xml");
// Iterate through the rows, adding XML nodes for each

foreach($result as $key => $li){
// ADD TO XML DOCUMENT NODE
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("name",$li['name']);
$newnode->setAttribute("address", $li['address']);
$newnode->setAttribute("lat", $li['lat']);
$newnode->setAttribute("lng", $li['lng']);
$newnode->setAttribute("distance", $li['distance']);
}

echo $dom->saveXML();
}

}

输出

<markers><marker name="Harvey Norman BIG BUYS" address="Shop 9&amp;11 Ground Level Springvale Homemaker Centre 917 Princes Highway Springval VIC 3171" lat="-37.927456" lng="145.143845" distance="19.74128375361586"></marker>....blahblah... <markers>

然后我发现downloadurl功能不起作用,无论我输入什么url,都没有任何反应。为什么会发生这种情况?

任何想法将不胜感激。

我已将 JavaScript 粘贴到 http://pastebin.com/yu0bX3vz

最佳答案

此处显示的代码片段负责生成 XML。生成的 XML 包含标记数据,需要解析这些数据并将其移交给 Google Maps API,以便绘制标记。

您可能想做的第一件事是让一个标记正常工作,然后升级到多个标记。只需尝试正确获取 XML 并在 map 上绘制标记即可。在尝试添加标记之前必须初始化 map 。

如果成功,请继续通过 jQuery 动态加载标记 XML。因为您已经在使用 jQuery,所以我建议放弃 downloadURL() 函数,转而使用带有添加成功函数的简单 jQuery Ajax .get() 请求,用于解析传入的响应 XML。

$(document).ready(function()
{
$.ajax({
type: "GET",
url: "markers.xml", // xml source: either static xml file or xml generated by php
dataType: "xml",
success: parseXml // parse the marker xml
});
});

// the idea is: from xml -> to var "location" -> addMarker(location)
function parseXml(xml)
{
// foreach marker extract the xml data (lat,long,...)
$(xml).find("marker").each(function(index){

// and assign to a new location var
var location.lat = $(this).find('lat').text();
var location.long = $(this).find('long').text();
var location.name = $(this).find('name').text();

// then use this data to add the marker
addMarker(location);
)
}

function addMarker(location)
{
// the marker is a "point" on the map defined by it's lat/long
var point = new google.maps.LatLng(location.lat, location.lng);

var marker = new google.maps.Marker({
position:point,
map: map,
title: location.name
});
};

如果您需要绑定(bind)一个信息窗口或其他内容,当单击标记图标时会弹出,那么请在这篇文章中搜索bindInfoWindow() https://developers.google.com/maps/articles/phpsqlajax_v3

我认为,这就是您获得的 downloadURL() 函数的起源,但在本教程中,他们不像您那样使用 jQuery。

这个问题也可能有帮助:Loading XML via jQuery for Google Maps API V3

关于javascript - downloadUrl 函数不适用于使用 opencart 创建谷歌地图定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26855798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com