将Google地图与来自HTTPrequest Javascript的标记集成

时间:2012-01-19 06:09:29

标签: javascript google-maps titanium appcelerator

您好我在使用appcelerator,我希望将地图与我从HTTPRequest获得的一系列标记集成... 我迷失了,完全迷失了。

这就是地图的样子:

var mapview = Titanium.Map.createView({
    mapType: Titanium.Map.STANDARD_TYPE,
    region: {latitude:33.74511, longitude:-84.38993, 
            latitudeDelta:0.01, longitudeDelta:0.01},
    animate:true,
    regionFit:true,
    userLocation:true,
    annotations:[mountainView]
});

我有1个标记硬编码的例子......

var mountainView = Titanium.Map.createAnnotation({
    latitude:37.390749,
    longitude:-122.081651,
    title:"Appcelerator Headquarters",
    subtitle:'Mountain View, CA',
    pincolor:Titanium.Map.ANNOTATION_RED,
    animate:true,
    leftButton: '../images/appcelerator_small.png',
    myid:1 // CUSTOM ATTRIBUTE THAT IS PASSED INTO EVENT OBJECTS
});

所以你要创建标记,然后在注释部分将它添加到地图中,这里的内容是我从中获取标记:

var url = "http://myURLwithMyParameters";
var xhr = Ti.Network.createHTTPClient({
    onload: function(e) {
        // this function is called when data is returned from the server and available for use
        // this.responseText holds the raw text return of the message (used for text/JSON)
var result = this.responseText;
var xml = Ti.XML.parseString(result);
var items = xml.documentElement.getElementsByTagName("marker");

var name = xml.documentElement.getElementsByTagName("name");
var value = xml.documentElement.getElementsByTagName("address");

var data = [];

for (var i=0;i<items.length;i++) {
  data.push({
        name: items.item[i].getElementsByTagName("name")[0].textContent,
        address: items.item[i].getElementsByTagName("address")[0].textContent 

   })

有人知道如何整合这个吗? 我想我必须在与标记相同的功能中构建地图,但我已经尝试了几个选项,并且没有在网络中找到任何这样的例子。 任何线索都将非常感激。 先感谢您。

1 个答案:

答案 0 :(得分:0)

如果你拥有的只是一个地址,你需要转发地理编码这些地址以获得纬度/经度坐标。这些坐标需要在地图上放置注释。查看forwardGeocoder()处的文档。 KitchenSink

中有一个例子