【发布时间】:2016-06-17 18:09:29
【问题描述】:
我决定从 Fusion Tables 获取行政区域。导入 gpx 文件后,我将其保存到 MySQL
$gpx = simplexml_load_file($folder.$file);
$trasa ="'LINESTRING(";
foreach ($gpx->trk->trkseg->trkpt as $trkpt) {
$lat = (string) $trkpt['lat'];
$lon = (string) $trkpt['lon'];
$trasa .= $lon;
$trasa .=" ";
$trasa .= $lat;
$trasa .=",";
}
$trasa =rtrim($trasa,",");
$trasa .=")',0";
unset($gpx);
$ins = @mysql_query("INSERT INTO punktytras(nick,punkty) VALUES('$nick', LineFromText($trasa))");
之后我希望通过代码加载与 gpx 相交的地图 Fusion Table 图层
var layer = new google.maps.FusionTablesLayer({
query: {
select: 'geometry',
from: '1w7Z-O1F0g4s2suHq4mSlAJ-31MBPwVLB7vXKAuaY',
where: 'SELECT ST_INTERSECTS(LineFromText($trasa), geometry))'
}
});
layer.setMap(map);
但是 Fusion Table 中的所有几何图形都已加载。我在哪里犯错了? TIA 4 个答案。
已编辑 好的,我改变了我的查询,现在我有
$.ajax({
type: "GET",
url: "uploads/<?php echo $row['file'] ?>",
dataType: "xml",
success: function(xml) {
var points = [];
var kolory=[];
$(xml).find("trkpt").each(function() {
var lat = $(this).attr("lat");
var lon = $(this).attr("lon");
var p = new google.maps.LatLng(lat, lon);
var layer = new google.maps.FusionTablesLayer({
query: {
select: '\'geometry\'',
from: '1w7Z-O1F0g4s2suHq4mSlAJ-31MBPwVLB7vXKAuaY',
where: 'ST_INTERSECTS(\'geometry\',CIRCLE(LATLNG('+ lat+","+lon +'), 0.5));'
}
});
layer.setMap(map);
points.push(p);
bounds.extend(p);
});
但我认为我的 gpx 中前 5 个 ponts 只有 5 个 Fusion Tables Layers。我不知道,如何首先从 gpx 中选择包含点的区域,然后将它们添加为 FTLayer :(
【问题讨论】:
标签: google-maps google-maps-api-3 google-fusion-tables