Ich versuche, meine googlemaps v2 Funktionen auf v3 zu portieren.So beheben Sie Uncaught InvalidValueError: setPosition: keine LatLng oder LatLngLiteral: in Eigenschaft lat: keine Zahl?
Aber irgendwie steckte ich in einem seltsamen Fehler und ich konnte nicht finden, was ich falsch mache.
Error : Uncaught InvalidValueError: setPosition: not a LatLng or LatLngLiteral: in property lat: not a number %7Bmain,adsense,geometry,zombie%7D.js:25
Hier ist meine Karte Initialisierung:
var map = new google.maps.Map(document.getElementById("map"),{
zoom:4
size:new google.maps.Size(580,440),
mapTypeControl: true,
mapTypeControlOptions: {
style:google.maps.MapTypeControlStyle.VERTICAL_BAR,
position: google.maps.ControlPosition.BOTTOM_CENTER,
},
panControl: true,
panControlOptions: {
position: google.maps.ControlPosition.TOP_LEFT,
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.LEFT_CENTER,
},
scaleConrol: true,
scaleControlOptions:{
position: google.maps.ControlPosition.TOP_LEFT ,
},
});
map.setCenter(new google.maps.LatLng(49.477643, 9.316406));
und hier der Teil mit meinem Fehler:
function drawTraders(map, options) {
var traders_uri = options.traders_uri || '';
if ('' == traders_uri) {
return false;
}
// get the informations
$.getJSON(traders_uri, function(data) {
// look through the information
$.each(data.traders, function(i, trader) {
var icon = options.icon_image_uri;
var markerIcon = new google.maps.MarkerImage(icon,
// This marker is 20 pixels wide by 32 pixels tall.
new google.maps.Size(25, 25),
// The origin for this image is 0,0.
new google.maps.Point(0,0),
// The anchor for this image is the base of the flagpole at 0,32.
new google.maps.Point(0, 32)
);
var html = 'test';
/*Information from chromium debugger
trader: Object
geo: Object
lat: "49.014821"
lon: "10.985072"
*/
var myLatlng = new google.maps.LatLng(trader.geo.lat,trader.geo.lon);
/*here is the error in new google.maps.Marker()*/
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
icon : markerIcon,
});
var infowindow = new google.maps.InfoWindow({
content: html
});
}
Edit: der Aufruf von drawTraders
drawTraders(map, {
traders_uri: "getTraders.php",
icon_image_uri: "icon-cms.gif",
});
Ich war mit dieses Beispiel Info Window
Ich hoffe, jemand könnte mir helfen.
Edit:
GSize zu verwenden ist eine Sache v2 . MarkerImage ist ein veraltetes v3-Konstrukt, das durch das anonyme [Symbol] (https://developers.google.com/maps/documentation/javascript/reference#Icon) ersetzt wird. Was sind die Werte von 'trader.geo.lat, trader.geo.lon' – geocodezip
Sorry, ich habe es nicht gesehen, aber nachdem es auf google.maps.Größe behoben wurde funktioniert es immer noch nicht. Die Werte sind im Kommentar. Ich verstehe den Downvote nicht, aber ok – demonking
Sie haben nicht genügend Code gepostet, um das Problem zu replizieren. – geocodezip