Google Maps API 进级:通过XML文档加载Gpolyline或者Gpolygon
2009-12-18 10:49
495 查看
转自:http://hi.baidu.com/xfm_zhr/blog/item/20e2e6f99c723e5e242df229.html
1. 通过XML文档加载Gpolyline或者Gpolygon
基本思路:
a. 设计规范明确的XML文档。该文档在后台修改维护。
b. 获取XML文档。
c. 解析XML文档,生成对应的Gpolyline或者Gpolygon对象。
d. 将生成的对象在GoogleMaps上进行处理。
具体示例代码:
XML文档的设计示例
<?xml version="1.0" encoding="UTF-8"?>
<overlays>
<!--
point节点的lat,lng属性 分别代表经纬度
-->
<!--
polyline节点的color属性代表边线颜色
width属性代表边线宽度
opacity属性代表边线透明度
-->
<polyline color="#FF0000" width="8" opacity="0.5">
<point lat="43.6" lng="110" />
<point lat="35.8" lng="119" />
<point lat="37.9" lng="102" />
</polyline>
<polyline color="#0000FF" width="6" opacity="0.5">
<point lat="42" lng="120" />
<point lat="45.8" lng="125" />
<point lat="37.9" lng="126" />
<point lat="47.9" lng="130" />
</polyline>
<!--
polygon节点的 color属性代表边线颜色
width属性代表边线宽度
opacity属性代表边线透明度
fillcolor属性代表填充颜色
fillopacity属性代表填充透明度
-->
<polygon color="#008800" width="4" alpha="0.8" fillcolor="#FF00FF" fillopacity="0" >
<point lat="39" lng="105" />
<point lat="43" lng="118" />
<point lat="35" lng="125" />
<point lat="31" lng="116" />
<point lat="36" lng="106" />
<point lat="39" lng="105" />
</polygon>
<polygon color="#000000" width="2" alpha="1" fillcolor="#FF00FF" fillopacity="1" >
<point lat="27" lng="100" />
<point lat="30" lng="100" />
<point lat="30" lng="105" />
<point lat="27" lng="105" />
<point lat="27" lng="100" />
</polygon>
</overlays>
获取XML文档示例
function loadXmlData(xmlfile)
{
//创建GXmlHttp
var request = GXmlHttp.create();
request.open("GET", xmlfile, true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var xmlDoc = request.responseXML;
// ========= 获取polyline节点 ===========
var polylines = xmlDoc.documentElement.getElementsByTagName("polyline");
// 处理每一个节点
for (var i = 0; i < polylines.length; i++)
{
addPolyline(polylines[i]);
}
// ========= 获取polylgon节点 ===========
var polygon = xmlDoc.documentElement.getElementsByTagName("polygon");
// 处理每一个节点
for (var i = 0; i < polylines.length; i++)
{
addPolygon(polygon[i]);
}
// ================================================
}
}
request.send(null);
}
解析XML文档示例
//加载折线,返回值为被添加的折线
function addPolyline(node){
//加载边线颜色,宽度,透明度
var color = node.getAttribute("color");
var width = parseFloat(node.getAttribute("width"));
var opacity = parseFloat(node.getAttribute("opacity"));
//加载顶点
var points = node.getElementsByTagName("point");
var pts = [];
for (var i = 0; i < points.length; i++)
{
pts[i] = new GLatLng(parseFloat(points[i].getAttribute("lat")),
parseFloat(points[i].getAttribute("lng")));
}
//添加折线
var polyline = new GPolyline(pts, color, width, opacity);
map.addOverlay(polyline);
return polyline;
}
//加载多边形,返回值为被添加的多边形
function addPolygon(node)
{
//加载边线颜色,宽度,透明度
var color = node.getAttribute("color");
var width = parseFloat(node.getAttribute("width"));
var opacity = parseFloat(node.getAttribute("opacity"));
//加载填充颜色,透明度
var fillcolor = node.getAttribute("fillcolor");
var fillopacity = parseFloat(node.getAttribute("fillopacity"));
//加载顶点
var points = node.getElementsByTagName("point");
var pts = [];
for (var i = 0; i < points.length; i++)
{
pts[i] = new GLatLng(parseFloat(points[i].getAttribute("lat")),
parseFloat(points[i].getAttribute("lng")));
}
//添加多边形
var polygon = new GPolygon(pts, color, width, opacity, fillcolor, fillopacity);
map.addOverlay(polygon);
return polygon;
}
1. 通过XML文档加载Gpolyline或者Gpolygon
基本思路:
a. 设计规范明确的XML文档。该文档在后台修改维护。
b. 获取XML文档。
c. 解析XML文档,生成对应的Gpolyline或者Gpolygon对象。
d. 将生成的对象在GoogleMaps上进行处理。
具体示例代码:
XML文档的设计示例
<?xml version="1.0" encoding="UTF-8"?>
<overlays>
<!--
point节点的lat,lng属性 分别代表经纬度
-->
<!--
polyline节点的color属性代表边线颜色
width属性代表边线宽度
opacity属性代表边线透明度
-->
<polyline color="#FF0000" width="8" opacity="0.5">
<point lat="43.6" lng="110" />
<point lat="35.8" lng="119" />
<point lat="37.9" lng="102" />
</polyline>
<polyline color="#0000FF" width="6" opacity="0.5">
<point lat="42" lng="120" />
<point lat="45.8" lng="125" />
<point lat="37.9" lng="126" />
<point lat="47.9" lng="130" />
</polyline>
<!--
polygon节点的 color属性代表边线颜色
width属性代表边线宽度
opacity属性代表边线透明度
fillcolor属性代表填充颜色
fillopacity属性代表填充透明度
-->
<polygon color="#008800" width="4" alpha="0.8" fillcolor="#FF00FF" fillopacity="0" >
<point lat="39" lng="105" />
<point lat="43" lng="118" />
<point lat="35" lng="125" />
<point lat="31" lng="116" />
<point lat="36" lng="106" />
<point lat="39" lng="105" />
</polygon>
<polygon color="#000000" width="2" alpha="1" fillcolor="#FF00FF" fillopacity="1" >
<point lat="27" lng="100" />
<point lat="30" lng="100" />
<point lat="30" lng="105" />
<point lat="27" lng="105" />
<point lat="27" lng="100" />
</polygon>
</overlays>
获取XML文档示例
function loadXmlData(xmlfile)
{
//创建GXmlHttp
var request = GXmlHttp.create();
request.open("GET", xmlfile, true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var xmlDoc = request.responseXML;
// ========= 获取polyline节点 ===========
var polylines = xmlDoc.documentElement.getElementsByTagName("polyline");
// 处理每一个节点
for (var i = 0; i < polylines.length; i++)
{
addPolyline(polylines[i]);
}
// ========= 获取polylgon节点 ===========
var polygon = xmlDoc.documentElement.getElementsByTagName("polygon");
// 处理每一个节点
for (var i = 0; i < polylines.length; i++)
{
addPolygon(polygon[i]);
}
// ================================================
}
}
request.send(null);
}
解析XML文档示例
//加载折线,返回值为被添加的折线
function addPolyline(node){
//加载边线颜色,宽度,透明度
var color = node.getAttribute("color");
var width = parseFloat(node.getAttribute("width"));
var opacity = parseFloat(node.getAttribute("opacity"));
//加载顶点
var points = node.getElementsByTagName("point");
var pts = [];
for (var i = 0; i < points.length; i++)
{
pts[i] = new GLatLng(parseFloat(points[i].getAttribute("lat")),
parseFloat(points[i].getAttribute("lng")));
}
//添加折线
var polyline = new GPolyline(pts, color, width, opacity);
map.addOverlay(polyline);
return polyline;
}
//加载多边形,返回值为被添加的多边形
function addPolygon(node)
{
//加载边线颜色,宽度,透明度
var color = node.getAttribute("color");
var width = parseFloat(node.getAttribute("width"));
var opacity = parseFloat(node.getAttribute("opacity"));
//加载填充颜色,透明度
var fillcolor = node.getAttribute("fillcolor");
var fillopacity = parseFloat(node.getAttribute("fillopacity"));
//加载顶点
var points = node.getElementsByTagName("point");
var pts = [];
for (var i = 0; i < points.length; i++)
{
pts[i] = new GLatLng(parseFloat(points[i].getAttribute("lat")),
parseFloat(points[i].getAttribute("lng")));
}
//添加多边形
var polygon = new GPolygon(pts, color, width, opacity, fillcolor, fillopacity);
map.addOverlay(polygon);
return polygon;
}
相关文章推荐
- Google Maps API 进级:监听键盘鼠标事件 加载KML或者GEORSS文档
- 通过Web服务外置XML,将Web服务用作数据源,Web服务传递的内容是XML,将由Web服务返回的XML文档,以便可以将它加载到客户机上的XML分析器。
- XML:XPath路径定义选取节点 XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式: 表达式 描述 nodename
- Dom元素基本操作方法API,先记录下,方便以后使用。 W3C DOM和JavaScript很容易混淆不清。DOM是面向HTML和XML文档的API,为文档提供了结构化表示,并定义了如何通过脚本
- Google Maps API 进级: GPolygon对象2
- 通过Web服务外置XML,将Web服务用作数据源,Web服务传递的内容是XML,将由Web服务返回的XML文档,以便可以将它加载到客户机上的XML分析器。
- 通过Swashbukle给DotNet Core Web API 增加自动文档功能
- 利用JCom调用MS Office或者Acrobat API转换文档为PDF(转)
- Java基础---“接口”实现时的另一种方式。通过Java JDK API 1.6.0文档实例发现并得出结论
- C#操作Xml:通过XmlDocument读写Xml文档
- 使用MSOffice .NET API 将文档(Word \ Excel \ PowerPoint \ Visio \ text \ XML \ RTF \ CSV等)转换为PDF
- MyEclipse中解决不能查看源代码或者API帮助文档的方法
- 百度 GeocodingApi 102 不通过白名单或者安全码不对
- 通过 HTTP 加载 XML 文件时 Load 方法失败
- PDM转换成Word文档或者XML文档
- 通过Swashbukle给DotNet Core Web API 增加自动文档功能
- Android2.2 API中文文档——View Android View的xml属性
- 配置文件的使用,如果要跨平台,建议直接用 xml, json, ini 或者本文档,看自己方便
- 加载xml文档(原生JS版及jQuery版)
- xml.dom——文档对象模型API