在Google Maps多边形的javascript中使用PHP变量
我正在谷歌地图上绘制一个多边形,使用从数据库中提取的一组坐标在Google Maps多边形的javascript中使用PHP变量,javascript,php,google-maps,Javascript,Php,Google Maps,我正在谷歌地图上绘制一个多边形,使用从数据库中提取的一组坐标 php从数据库中提取坐标 scripts.js在文档就绪时创建映射,并存储所有映射配置选项 边界坐标字符串示例: [52.6294414232, 1.28337337354], [52.6294108159, 1.28350410559], [52.6293577844, 1.28347057106], [52.6292373999, 1.28391974753], [52.6293340783, 1.28400089488],
- php从数据库中提取坐标
- scripts.js在文档就绪时创建映射,并存储所有映射配置选项
[52.6294414232, 1.28337337354], [52.6294108159, 1.28350410559], [52.6293577844, 1.28347057106], [52.6292373999, 1.28391974753], [52.6293340783, 1.28400089488], [52.6292540937, 1.28429051171], [52.6292088096, 1.28430189851], [52.6291929061, 1.2842268041], [52.6291753654, 1.28421070907], [52.6291251702, 1.28439909373], [52.6289228389, 1.28423612589], [52.6289538563, 1.28409064607], [52.628795581, 1.28396054235], [52.6288674082, 1.28364075593], [52.628946546, 1.28370580721], [52.6289763352, 1.28360457624], [52.6290289574, 1.2836528604], [52.6290693582, 1.28349330243], [52.6291215713, 1.2835563364], [52.6292403179, 1.28316615953],
我知道坐标字符串是有效的,因为当我将其手动输入地图javascript时,多边形显示正确
我将坐标字符串存储在PHP变量$boundary
中,然后尝试将其传递到javascript中,并在map.PHP中使用以下内容:
<script>
var boundary = <?php echo $boundary ?>;
</script>
但是没有成功
任何人都可以建议一种将此坐标字符串传递到地图javascript中的方法吗?在将地图的
路径-属性指定给边界之前,必须将数字对转换为google.maps.LatLng
var boundary = <?php echo $boundary; ?>;
for(var i = 0; i < boundary.length; ++i ){
boundary[i] = new google.maps.LatLng(boundary[i][0],
boundary[i][1]);
}
new google.maps.Polygon({path:boundary/*,more properties*/});
var边界=;
对于(变量i=0;i
尝试在标记之间执行PHP语句时会遇到问题。试试这个:
<? print
"<script language=javascript>
var boundary = $boundary
</script>"
?>
(按您的喜好格式化)感谢您的回复,但如果是这样,为什么手动输入相同的字符串或在PHP中回显$boundary变量有效,而在javascript中却无效?它们应该是做完全相同事情的三种方法?什么在PHP中有效?MapsAPI是一个javascript库。如果我将脚本标记中的javascript内容转储到php文件中并从那里运行它,它将完美地绘制多边形。问题似乎是将字符串/变量从PHP传递到javascript。我不知道您到底在那里转储了什么,但我确信这没有什么区别。
<? print
"<script language=javascript>
var boundary = $boundary
</script>"
?>