【发布时间】:2014-08-06 12:59:12
【问题描述】:
我正在尝试根据用户输入使用 GoogleMaps API V3 更改标记/图标的颜色。我可以将我想要的颜色或图像链接硬编码到 Javascript 中,但是如果我尝试从我的 Java 程序中将颜色或链接作为字符串变量传递,那么它要么不显示,要么默认为红色标记。
我查看了以下所有线程和 google API:
- Google Maps API 3 - Custom marker color for default (dot) marker
- How do I change icon colour in Google Maps API V3?
- Google Maps API 3 - Custom marker color for default (dot) marker
- https://developers.google.com/maps/documentation/javascript/markers
所有这些都有指向他们想要使用的标记图标的链接,或者已经硬编码到 javascript 中的颜色 HEX 代码。
我的尝试,其中 address1 和 color1 都是从我的 Java 代码传递给 javascript 的字符串。 color1 的字符串,例如可以是
“http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld•|4D8080”:
function codeAddress(address1, color1){
var pinColor = color1;
address=address1;
document.geocoder.geocode( {'address': address1}, function(results, status) {
app.callFromJavascript(address1);
if (status == google.maps.GeocoderStatus.OK) {
document.map.setCenter(results[0].geometry.location);
document.map.setZoom(13);
var marker = new google.maps.Marker({
icon: pinColor,
position: results[0].geometry.location,
map: document.map
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
这会导致地图以该位置为中心并显示默认的红色标记。 如果我将传递给 color1 的字符串更改为“http://maps.google.com/mapfiles/ms/icons/yellow-dot.png”,则根本不会显示任何标记。
我错过了什么,我无法从传递的变量中生成这些?对位置标记进行硬编码是完全不可能和强制的吗?
【问题讨论】:
-
你能提供Jsfiddle吗
-
我可以通过 Jsfiddle 组合 Java/HTML/Javascript 吗?我现在正在看它,但似乎我不能。这是一个相当大的项目,涉及数据库和地理编码购买的邮政编码,我想做的就是知道是否可以将标记变量的图标选项作为字符串传递的 URL。
-
好的,但是出了点问题。您可以从变量更改颜色。 jsfiddle.net/2Vz6m/31
-
@user3388636 啊哈!谢谢你让这个季度下降,当我将它传递给 javascript 时,我只是错过了另一组单引号!现在完美运行!
标签: javascript google-maps google-maps-api-3 java-8