मैं बस एक jquery मोबाइल पेज के भीतर एक Google मानचित्र प्रदर्शित करने की कोशिश कर रहा हूं। अगर मैं सीधे पेज लोड करता हूं तो यह काम करता है। हालांकि, अगर मैं किसी अन्य पृष्ठ से पृष्ठ पर नेविगेट करता हूं तो यह केवल एक नक्शा टाइल प्रस्तुत करता है। पहली नज़र में यह दिखाई देगा कि मेरा मुद्दा https://forum.jquery.com/topic/google-maps-inside-jquery-mobileJQuery मोबाइल और Google मानचित्र सही ढंग से प्रस्तुत नहीं कर रहे हैं
हालांकि, मैं पहले से ही 'पेजिनिट' ईवेंट के भीतर अपना प्रारंभिक प्रदर्शन कर रहा था और मेरे मानचित्र div की एक सेट चौड़ाई और ऊंचाई है।
मैंने http://code.google.com/p/jquery-ui-map/ देखा है, लेकिन यदि संभव हो तो मैं एक (अन्य) तृतीय पक्ष प्लगइन का उपयोग नहीं करूंगा। पहले से
<!DOCTYPE HTML>
<html>
<head>
<title>PhoneGap</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="cordova-1.6.1.js"></script>
<link rel="stylesheet" href="jquery.mobile-1.1.0.min.css" />
<script src="jquery-1.7.1.min.js"></script>
<script src="global.js"></script>
<script src="jquery.mobile-1.1.0.min.js"></script>
</head>
<body>
<div id="mapPage" data-role="page">
<style type="text/css">
html
{
height: 100%;
}
body
{
height: 100%;
margin: 0;
padding: 0;
}
#map_canvas
{
height: 100%;
}
</style>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=***API_KEY_REMOVED***&sensor=true">
</script>
<script type="text/javascript">
function initialize() {
var height = $(window).height() - 50;
var width = $(window).width();
$("#map_canvas").height(height);
$("#map_canvas").width(width);
var myLatlng = new google.maps.LatLng(39.962799, -82.999802);
var myOptions = {
center: myLatlng,
zoom: 18,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
//alert($(map.getDiv()).width());
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: ""
});
google.maps.event.trigger(map, 'resize')
}
$("#mapPage").live('pageinit', function() {
initialize();
});
</script>
<div data-role="header" id="menuHeader">
<a href="MenuDialog.htm" class="menuLink" data-role="none" data-rel="dialog">
<img class="headerIcon" style="height: 40px; border-right: 1px solid #333333; padding-right: 5px;"
id="MenuIcon" src="images/menuIcon.png" /></a>
<p>
Loc
</p>
</div>
<div data-role="content">
<div id="map_canvas" style="margin-top: 50px;">
</div>
</div>
</body>
<html>
धन्यवाद आप के लिए मदद:
यहाँ मेरा पेज लग रहा है की तरह है।
अद्यतन:
कुछ प्रयोग मैं अपने आकार घटना के लिए निम्न देरी जोड़ा बाद:
setTimeout(function() {
google.maps.event.trigger(map,'resize');
}, 500);
यह समस्या ठीक करने के लिए लग रहा था। उम्मीद है कि यह किसी और की मदद करता है।
समय समाप्त समारोह वास्तव में बात यह है कि मैं जरूरत थी। चीयर्स –
यह शानदार काम करता है। जबकि मुझे लगता है कि यह काफी हैकी है, यहां बहुत सारे विकल्प नहीं हैं।टाइमआउट बहुत अच्छा काम करता है क्योंकि यह उचित आकार बदलने के लिए इसे कॉल करने से पहले मानचित्र को पहले प्रस्तुत करने की अनुमति देता है। यहां मेरा एकमात्र मुद्दा यह है कि हम कैसे सुनिश्चित कर सकते हैं कि 500 एमएस पर्याप्त है? एक कॉलबैक दृष्टिकोण बेहतर काम कर सकता है, जैसे नक्शे को "निष्क्रिय" ईवेंट को आग लगाना। निष्क्रिय मेरे लिए काम नहीं करता था और मुझे हुक करने के लिए एक और उचित घटना नहीं मिल सका। :( – Eric
setTimeout महान काम करता है। धन्यवाद –