গুগল ম্যাপস এপিআই ভি 3: ইনফর্ম উইন্ডো সঠিকভাবে আকার দিচ্ছে না


83

এটি আমার ইনফো উইন্ডোতে উপস্থিত হয়, যখন আপনি আমার গুগল ম্যাপস ভি 3 এর হোম আইকনে ক্লিক করেন, সঠিকভাবে ইনফো উইন্ডোর সামগ্রীটিতে স্বয়ংক্রিয় আকার দেওয়া হয় না।

এটি যখন না করা উচিত তখন স্ক্রোলবার দেয়। ইনফো উইন্ডোটি সঠিকভাবে অটো-সাইজিং করা উচিত।

কেন কোন ধারণা?

অনুরোধ অনুসারে, সম্পর্কিত জাভাস্ক্রিপ্ট যা ইনফর্ম উইন্ডোর জন্য এইচটিএমএলকে ইনজেক্ট করে:

listing = '<div>Content goes here</div>';

হালনাগাদ

গুগল ইস্যুতে এই বাগটি পরিচালনা করেছিল

https://issuetracker.google.com/issues/35823659

ফ্যাক্সটি মানচিত্র জাভাস্ক্রিপ্ট API এর 3.19 সংস্করণে ফেব্রুয়ারী 2015 তে প্রয়োগ করা হয়েছিল।


আপনার প্রশ্নে প্রাসঙ্গিক কোডটি অনুলিপি করা ভাল। অন্যথায় আপনার সাইটের কোড পরিবর্তিত হলে এই প্রশ্নটি অর্থহীন হয়ে যায়।
জোনাথন ফিংল্যান্ড

ঠিক আছে, এটি আসলে পুরো বিষয়টি। এটি আমার বোধগম্য যে গুগল ম্যাপস ভি 3 এপিআই আমার সিএসএস নির্বিশেষে স্বয়ংক্রিয় আকারের ... এবং এটি এমন নয়। তবে আমি যাইহোক কোড পোস্ট করব
জ্যাকবটি

7
আমি জানি এটি পুরানো, তবে কেউ যদি এখানে এসে সবকিছু চেষ্টা করে তবে এখনও সমস্যা আছে (যেমনটি আমি করেছি): ইনফাইন্ডগুলি আপনার মানচিত্রের মাত্রাগুলির সাথে সর্বাধিক উচ্চতার সমানুপাতিক। এটি ভি 2 এর চেয়ে ছোট। সুতরাং আপনি যদি ভি 2 থেকে ভি 3 এ আপগ্রেড করছেন এবং এই সমস্যাটি থাকে তবে এটি এর কারণ হতে পারে। হয় আপনার সামগ্রীকে আরও খাটো করুন, বা আপনার মানচিত্রটি দীর্ঘ করুন, বা ভি-তে আবার ডাউনগ্রেড করুন।
ক্যাসি

উত্তর:


32

আপনার infowindow ভিতরে একটি ডিভ যোগ করুন

<div id=\"mydiv\">YourContent</div>

তারপরে সিএসএস ব্যবহার করে আকার নির্ধারণ করুন। আমার জন্য কাজ কর. এই হিসাবে সমস্ত infowindows একই আকার হয়!

#mydiv{
width:500px;
height:100px;
}

হুবহু একই আকারে বা আপনি বিভিন্ন মাত্রা সহ আপনার সিএসএসে পর্যাপ্ত ক্লাস তৈরি করেন।
এলিজাহ সাউনকাইন

আপনি কীভাবে আপনার ইনফাইন্ডাউদের সাথে কাজ করছেন তার উপর নির্ভর করে একই পৃষ্ঠায় ঘুরে ভাসমান ডুপ্লিকেট আইডিগুলি এড়াতে আইডির চেয়ে ক্লাস ব্যবহার করা আরও নিরাপদ হতে পারে, যেমন <div class=\"mydiv\">YourContent</div>এবং.mydiv{ width:500px; height:100px; }
স্ট্যাক এক্সচেঞ্জ হোয়াট দ্য হেক

এটি ডেস্কটপে কাজ করে, তবে মোবাইল ডিভাইসগুলিতে নয় (অ্যান্ড্রয়েড) /
ব্যবহারকারী 2060451

31

সংক্ষিপ্ত উত্তর: কন্সট্রাক্টরের সর্বাধিক প্রস্থের বিকল্পগুলি সেট করুন । হ্যাঁ, সর্বাধিক প্রস্থ নির্ধারণ করা আপনি যা করতে চেয়েছিলেন তা না হলেও।

দীর্ঘ গল্প: একটি ভি 2 মানচিত্রকে v3 এ স্থানান্তরিত করে, আমি ঠিক দেখতে পেয়েছি সমস্যাটি দেখেছি। উইন্ডোজ প্রস্থ এবং উচ্চতা বিভিন্ন, এবং কিছু উল্লম্ব স্ক্রোলবার ছিল এবং কিছু না। কারও কারও কাছে <br /> ডেটা এম্বেড করা ছিল, তবে কমপক্ষে সেই মাপের ঠিক আছে one

আমি উইন্ডোস অপশনস.ম্যাক্সউথের সম্পত্তি প্রাসঙ্গিক বলে মনে করি নি, যেহেতু আমি প্রস্থকে সীমাবদ্ধ রাখার যত্ন করি নি ... তবে ইনফো উইন্ডো কনস্ট্রাক্টরের সাথে সেট করে আমি যা চেয়েছিলাম তা পেয়েছি, এবং উইন্ডোজগুলি এখন স্বয়ংক্রিয়ভাবে (উল্লম্বভাবে) এবং উল্লম্ব স্ক্রোলবার ছাড়া সম্পূর্ণ সামগ্রী প্রদর্শন করুন। আমার কাছে অনেক কিছু বোঝায় না, তবে এটি কাজ করে!

দেখুন: http://fortboise.org/maps/sailing-spots.html


4
যদি অন্য কেউ maxWidthশতাংশে সেট করার চেষ্টা করছে , গুগল ম্যাপস পিতামাতার শতাংশ হিসাবে একটি {"maxWidth":0.25}ফ্লোটকে স্বীকৃতি দেবে এবং এটি পিক্সেল-সমতুল্যে রূপান্তর করবে: ঘোষণা করুন , প্যারেন্ট উপাদানটি 1000px প্রশস্ত, ইনফো উইন্ডোতে একটি থাকবে width: 250px। আমি মনে করি না যে ইনফোউইন্ডোর প্রস্থকে শতাংশ হিসাবে ধরে রাখতে বাধ্য করা সম্ভব (এর মান maxWidthঅবশ্যই একটি সংখ্যা হতে {"maxWidth":"25%"}হবে , তাই এটি কাজ করবে না এবং {"maxWidth":25%}একটি 25 মডুলাসকে অপরিজ্ঞাত হিসাবে চিহ্নিত করা হয় এবং একটি সিনট্যাক্স ত্রুটি ট্রিগার করে)।
জ্যাকব

মজাদার. বর্তমান গুগল ডকুমেন্টেশন google.maps.InfoWindowOptions.maxWidth সম্পত্তি "একটি সংখ্যা", এবং আমাদের পিক্সেল এর অনুমানক ইউনিট আছে। পার্সার একটি দশমিক সংখ্যা গ্রহণ করতে এবং এটি একটি ভগ্নাংশ হিসাবে ব্যাখ্যা করতে পারে না এমন কোনও কারণ নেই ... এবং এটি একটি অনির্ধারিত "বৈশিষ্ট্য" হিসাবে ছেড়ে যেতে পারে। সম্ভবত ভাল বুদ্ধি বাদে।
ফোর্টবোইজ

4
ঠিক আছে, দুর্দান্ত কাজ করার জন্য +1, তবে জিএম্যাপ কার্যকারিতা নিয়ে গবেষণা করার সময় কেন আমি সবসময় সেই পাত পৃষ্ঠায় শেষ হই।
বিল ব্লঙ্কেনশিপ

14
এটি ২০১০ সালে কাজ করেছে, তবে ২০১৪ সালের মতো কোনও
সাইমন পূর্ব

4
@ সিমন নতুন বছর, নতুন সমস্যা ... এই বারের সমাধানের কোনও সমাধান?
ফিল কুপার 18 ই

25

JQuery অবজেক্ট থেকে আপনার তথ্যটি উইন্ডোতে দেওয়া উচিত।

var $infoWindowContent = $("<div class='infowin-content'>Content goes here</div>");
var infoWindow = new google.maps.InfoWindow();
infowindow.setContent($infoWindowContent[0]);

4
ঠিক আছে এটি ঠিকঠাক কাজ করছে, অনেক ধন্যবাদ ... এখন আমি কেন জানতে চাই :)
জেরেমি এফ।

4
এটি আমার মধ্যে দেখা সবচেয়ে অদ্ভুত ফিক্সগুলির মধ্যে একটি। এই প্রশ্নের জন্য অন্য কোনও হ্যাক ছাড়া এটি আমার পক্ষে কাজ করে নি। অবিশ্বাস্য.
13'13 এ monoceres

4
কোনও কারণে, overflow: autoআপনি স্ট্রিংয়ের পরিবর্তে ডিওএম নোডগুলিতে পাস করার সময় মানচিত্রের এপিআই ইনফো উইন্ডো ডিআইভি না লাগায় appears বিষয়বস্তুটি কেবল 1-2px-এর বাইরে থাকলে সমস্যাটি সমাধান করে। দুর্ভাগ্যক্রমে এর অর্থ হ'ল লম্বা সামগ্রীটি স্ক্রোলবারগুলি যুক্ত করার পরিবর্তে ইনফো উইন্ডো থেকে প্রকৃতপক্ষে স্তব্ধ হয়ে যায়
সাইমন পূর্ব

এটি কাজ করার সময়, লোকগুলিকে পৃষ্ঠায় jQuery অন্তর্ভুক্ত করার জন্য জিজ্ঞাসা করা খুব খারাপ লাগে যাতে সঠিকভাবে infoWindow'sপ্রদর্শন করা যায়। এই কাজটি কেন আমার উত্তরে তালিকাভুক্ত রয়েছে তার সম্পূর্ণ উত্তর - jQueryএকটি বিচ্ছিন্ন ডিওএম ট্রি তৈরি করে যা সামগ্রীটি সঠিকভাবে রেন্ডার করতে বাধ্য করে এবং গুগল infoWindowমানচিত্রে স্থান দেওয়ার চেষ্টা করার আগে এর আকারটি সঠিকভাবে নির্ধারিত হয়
অ্যাডাম

22
.gm-style-iw{
    height: 100% !important;
    overflow: hidden !important;
}

এটা আমার জন্য কাজ করে


এই যে কোনো সামগ্রী রয়েছে যা একটি মহান সমাধান নয় হয় চেয়ে তথ্য উইন্ডোতে কেটে ফেলা হবে এবং গোপন বড় করা হয়েছে।
সাইমন পূর্ব

বিভিন্ন দৈর্ঘ্যের সামগ্রীর জন্য উপযুক্ত নয়, তবে প্রতিটি বিষয়বস্তু প্রস্থ প্রয়োগ করার জন্য আমার বিষয়বস্তু প্রায় একই রকম! গুরুত্বপূর্ণ এবং উচ্চতা! গুরুত্বপূর্ণ ছিল আমার পক্ষে যথেষ্ট সমাধানের!
জিম্বো জোন্স 16

22

সম্পাদনা (স্ট্যান্ডআউট): আমার উপর বিশ্বাস রাখুন, এই প্রশ্নের আরও শতাধিক উত্তরের মধ্যে, এটিই হ'ল কেন এটি হচ্ছে তা ব্যাখ্যা করে এমন একমাত্র সঠিক উত্তর

ঠিক আছে, তাই আমি জানি যে এই থ্রেডটি পুরানো, এবং এর হাজার উত্তর রয়েছে, তবে এর কোনওটিই সঠিক নয় এবং আমি সঠিক উত্তর পোস্ট করার প্রয়োজনীয়তা অনুভব করছি।

প্রথমত, আপনার স্ক্রোলবারগুলি ব্যতীত আপনার ইনফোউন্ডোটি প্রদর্শনের জন্য আপনাকে কখনই নির্দিষ্ট বা কোনও কিছু দেওয়ার প্রয়োজন হবে না , যদিও কখনও কখনও আপনি দুর্ঘটনাক্রমে এটি করে এটি কাজ করতে পারেন (তবে এটি শেষ পর্যন্ত ব্যর্থ হবে)।width'sheight's

দ্বিতীয়ত, Google মানচিত্র API infoWindow's না এটা কিভাবে তারা কাজ সঠিক তথ্য খুঁজে পেতে শুধু খুব কঠিন একটি স্ক্রলিং বাগ আছে। ঠিক আছে, এটি এখানে:

আপনি যখন গুগল ম্যাপস এপিআইকে ইনফো উইন্ডোতে এটি খুলতে বলবেন:

var infoWindow = new google.maps.InfoWindow({...});
....
infoWindow.setContent('<h1>Hello!</h1><p>And welcome to my infoWindow!</p>');
infoWindow.open(map);

সমস্ত উদ্দেশ্য এবং উদ্দেশ্যগুলির জন্য, গুগল মানচিত্রগুলি অস্থায়ীভাবে divআপনার পৃষ্ঠার শেষে একটি স্থান রাখে ( আসলে এটি একটি তৈরি করে detached DOM tree- তবে আমি বুঝতে চাইছি যে আপনি যদি divআপনার পৃষ্ঠার শেষের দিকে কোনও স্থানের কথা কল্পনা করেন ) এইচটিএমএল বিষয়বস্তু সহ নির্দিষ্ট এরপরে এটি পরিমাপ করে যে ডিভ (যার অর্থ এই উদাহরণস্বরূপ, আমার নথিতে সিএসএসের যে কোনও বিধি প্রযোজ্য h1এবং pট্যাগগুলি এতে প্রয়োগ করা হবে) এটি পেতে widthএবং height। গুগল তার পরে এটি গ্রহণ করে div, এটি আপনার পৃষ্ঠায় যুক্ত হওয়ার পরে এটি যে পরিমাপ করেছিল তা নির্ধারণ করে এবং এটি আপনার নির্দিষ্ট করা অবস্থানে মানচিত্রে রাখে।

এখানে অনেক লোকের জন্য সমস্যাটি ঘটে - তাদের এইচটিএমএল থাকতে পারে যা দেখতে এটি দেখতে পারে:

<body>
 <div id="map-canvas"><!-- google map goes here --></div>
</body>

এবং, যে কারণেই হোক না কেন, সিএসএস যা দেখতে এই রকম দেখাচ্ছে:

h1 { font-size: 18px; }
#map-canvas h1 { font-size: 32px; }

সমস্যা দেখতে পাচ্ছ? যখন এপিআই আপনার infoWindow(এটি প্রদর্শন করার আগে অবিলম্বে) জন্য পরিমাপগুলি গ্রহণ করার চেষ্টা করে h1, তখন সামগ্রীর অংশটির একটি আকার থাকবে 18px(কারণ অস্থায়ী "পরিমাপ ডিভ" শরীরে সংযুক্ত করা হয়েছে), কিন্তু যখন এপিআই প্রকৃতপক্ষে এটি স্থাপন infoWindowকরে মানচিত্র, #map-canvas h1নির্বাচক অগ্রাধিকার গ্রহণ করবে যার ফলে ফন্টের আকারটি তার চেয়ে অনেক বেশি আলাদা হবে যখন এপিআই এর আকার মাপত infoWindowএবং এই পরিস্থিতিতে আপনি সর্বদা স্ক্রোলবার পাবেন।

আপনার নিজের মধ্যে স্ক্রোলবার রয়েছে তার নির্দিষ্ট কারণের জন্য আরও কিছুটা পৃথক সূক্ষ্মতা থাকতে পারে infoWindow, তবে এর পিছনে কারণটি কারণ:

infoWindow প্রকৃত এইচটিএমএল উপাদানটি যেখানে মার্কআপে উপস্থিত হয় তা নির্বিশেষে আপনার অভ্যন্তরের সামগ্রীতে একই সিএসএস বিধি প্রয়োগ করতে হবে । যদি তারা তা না করে তবে আপনার ইনফো উইন্ডোতে আপনাকে স্ক্রোলবারগুলি পাওয়ার নিশ্চয়তা দেওয়া হবে

তাই আমি সবসময় যা করি তা হ'ল এইরকম:

infoWindow.setContent('<div class="info-window-content">...your content here...</div>');

এবং আমার সিএসএসে:

.info-window-content { ... }
.info-window-content h1 { .... }
.info-window-content p { ... }
etc...

সুতরাং এপিআই যেখানে এটি পরিমাপ যুক্ত করে তা বিবেচনা করে না div- বন্ধ হওয়ার আগে bodyবা এর অভ্যন্তরে #map-canvas, এটি প্রয়োগ করা সিএসএসের নিয়ম সর্বদা একই থাকবে।

সম্পাদনা করুন: হরফ পরিবার

গুগল হ'ল ফন্ট লোডিং ইস্যুতে সক্রিয়ভাবে কাজ করছে বলে মনে হচ্ছে (নীচে বর্ণিত) এবং কার্যকারিতা খুব সম্প্রতি পরিবর্তিত হয়েছে যাতে আপনি infoWindowপ্রথমবার যখন খুলবেন তখন আপনি রবোটো ফন্ট লোড দেখতে বা দেখতে পাবেন না , আপনি যে এপিআইটি ব্যবহার করছেন তার সংস্করণের উপর নির্ভর করে। একটি ওপেন বাগ রিপোর্ট রয়েছে (যদিও চেঞ্জলগে এই ত্রুটি প্রতিবেদনটি ইতিমধ্যে স্থির হিসাবে চিহ্নিত করা হয়েছিল) যা চিত্রিত করে যে গুগল এখনও এই সমস্যাটির সাথে অসুবিধায় রয়েছে।

আরও একটি বিষয়: আপনার ফন্টের পরিবারগুলি দেখুন!

এপিআইয়ের সর্বশেষতম অবতারে, গুগল চতুর হতে চেষ্টা করেছিল এবং কোনও তথ্য সিএসএস নির্বাচকের সাথে লক্ষ্যবস্তু হতে পারে এমন তথ্যতে উইন্ডো সামগ্রীটি মোড়ানোর চেষ্টা করেছিল - .gm-style-iw। যে সমস্ত লোকেরা আমি উপরে বর্ণিত বিধিগুলি বুঝতে পারি নি তাদের পক্ষে এটি সত্যিই সহায়তা করে না এবং কিছু ক্ষেত্রে এটিকে আরও খারাপ করে তুলেছিল। স্ক্রোলবারগুলি সর্বদা প্রথমবার infoWindowখোলার সময় উপস্থিত হয় , তবে আপনি যদি infoWindowআবার কোনওটি খুলেন , এমনকি ঠিক একই সামগ্রীতে স্ক্রোলবারগুলি চলে যাবে। গম্ভীরভাবে, যদি আপনি এর আগে বিভ্রান্ত না হন তবে আপনাকে আপনার মন হারাতে বাধ্য করবে। যা ঘটছিল তা এখানে:

গুগল যখন এপিআই লোড হয় তখন পৃষ্ঠাগুলিতে যে স্টাইলগুলি লোড হয় আপনি যদি তা দেখে থাকেন তবে আপনি এটি দেখতে সক্ষম হবেন:

.gm-style {
     font-family: Roboto,Arial,sans-serif
 ...
}

ঠিক আছে, তাই গুগল সর্বদা Robotoফন্ট-পরিবার ব্যবহার করে এটির মানচিত্রকে আরও কিছুটা সামঞ্জস্য করতে চেয়েছিল । সমস্যাটি হ'ল, বেশিরভাগ লোকের জন্য, আপনি একটি খোলার আগে infoWindowব্রাউজারটি এখনও Robotoফন্টটি ডাউনলোড করেনি (কারণ আপনার পৃষ্ঠায় অন্য কোনও কিছুই এটি ব্যবহার করেনি তাই ব্রাউজারটি এটি জানতে যথেষ্ট পর্যাপ্ত স্মার্ট যে এটি ডাউনলোড করার দরকার নেই) এই ফন্ট)। এই ফন্টটি ডাউনলোড করা তাত্ক্ষণিক নয়, যদিও এটি খুব দ্রুত। আপনি যখন প্রথম কোনও খুলেন infoWindowএবং এপিআই divআপনার infoWindowসামগ্রীগুলি শরীরে পরিমাপ করার জন্য এটি শরীরে সংযুক্ত করে, এটি Robotoফন্টটি ডাউনলোড শুরু করে তবে আপনার infoWindow'sপরিমাপ নেওয়া হয় এবং Robotoডাউনলোড শেষ হওয়ার আগে উইন্ডোটি মানচিত্রে স্থাপন করা হয় । বেশিরভাগ ক্ষেত্রে ফলাফলটি ছিল একটিinfoWindowএটির বিষয়বস্তু যখন Arialকোনও sans-serifফন্ট ব্যবহার করে রেন্ডার করা হয়েছিল তখন তা পরিমাপ করা হয়েছিল , তবে যখন এটি মানচিত্রে প্রদর্শিত হয়েছিল (এবং Robotoডাউনলোড শেষ হয়েছে) তখন এটির সামগ্রীটি একটি ফন্টে প্রদর্শিত হচ্ছিল যা ভিন্ন আকারের ছিল - এবং ভয়েলা - স্ক্রোলবারগুলি প্রথমবার উপস্থিত হয়েছিল আপনি খুলুন infoWindowinfoWindowদ্বিতীয়বারের মতো ঠিক একইটি খুলুন - Robotoএআইপি এটির infoWindowসামগ্রীর পরিমাপ করার সময় ব্যবহার করা হবে এবং আপনি কোনও স্ক্রোলবার দেখতে পাবেন না।


অ্যাডামের কয়েকটি দুর্দান্ত বিশদ রয়েছে এবং হ্যাঁ আমি আপনার কাছে একই জিনিস আবিষ্কার করেছি। যাইহোক, বাগ হিসাবে Google- এ প্রতিবেদন নেই আসলে এখনও সিস্টেম ফন্ট এবং কোন বংশধর CSS সিলেক্টর এমনকি ঘটতে দেখা যায়। এই উদাহরণটি দেখুন (Chrome 40 Win এ একটি স্ক্রোলবার রয়েছে)।
সাইমন পূর্ব

@ সিমন - আপনি সঠিক, আপনার জমা দেওয়া লিঙ্কটি একটি বাগ (অত্যন্ত প্রান্তের কেস, তবে একটি বাগ)। আমি কল্পনা করব> 98% সময়, যখন লোকেরা তাদের তথ্য উইন্ডোতে রিপোর্ট করে এবং তারা কেন তা জানে না - কারণ এই উত্তরে সম্বোধিত সমস্যাগুলির কারণ।
অ্যাডাম 13

আদম। এই উত্তর প্রদানের জন্য অনেক ধন্যবাদ। আপনি আমাকে একগুচ্ছ অপ্রয়োজনীয় হ্যাকিং সংরক্ষণ করেছেন!
আব্রাম

13

আমি তালিকাভুক্ত উত্তরগুলির প্রত্যেকটির চেষ্টা করেছি। কেউই আমার পক্ষে কাজ করেনি। শেষ পর্যন্ত এটি স্থায়ীভাবে স্থির করে। আমার উত্তরাধিকার সূত্রে প্রাপ্ত DIVকোডটিতে সমস্ত প্রবেশ <h#>এবং <p>প্রবেশের চারপাশে একটি মোড়ক ছিল । আমি কেবল একই ডিআইভিতে কিছু "স্টাইল" চাপিয়ে দিয়েছিলাম, একটি পছন্দসই সর্বাধিক প্রস্থের বিষয়টি বিবেচনা করে, লাইন উচ্চতার পরিবর্তনের ক্ষেত্রে কেবল (অন্য কারও ফিক্স) এবং আমার নিজের ক্ষেত্রে নিক্ষেপ করলাম white-space: nowrap, যার ফলে অটো ওভারফ্লো সঠিক সংশোধন করেছিল। কোনও স্ক্রোল বার নেই, কোন কাটছাঁট হবে না এবং কোনও সমস্যা নেই!

html = '<div class="map-overlay" style="max-width: 400px;
                                        line-height: normal;
                                        white-space: nowrap;
                                        overflow: auto;
                                       ">';

7
এইটা! আমি এখানে না আসা পর্যন্ত সাফল্য ছাড়াই সমস্ত উত্তর দিয়ে আমার পথে কাজ করে। আমার ক্ষেত্রে, এটি ছিল white-space: nowrapযাদু ছিল - অন্যান্য শৈলী অপ্রয়োজনীয় ছিল। চিয়ার্স!
জাভিয়ের হল্ট

এই প্রকৃতপক্ষে কাজ বলে মনে হচ্ছে না, তবে, infowindows কিছু একবার যদিও ... আমার চূড়ান্ত সমাধান সঙ্গে এই উত্তর একত্রিত ছিল চেয়ে বেশি ক্লিক করা করা হয়েছিল Concept211 যোগ করে 's font-family: sans-serif !important; font-weight: normal !important;সিএসএস করতে।
স্পার্কি

দুর্ভাগ্যক্রমে আপনার যদি দীর্ঘ লাইন থাকে তবে মোড়কের পরিবর্তে লাইনগুলি কেটে যাবে। আপনার সমস্ত লাইন সংক্ষিপ্ত না হওয়া অবধি আদর্শ সমাধান নয় ।
সাইমন পূর্ব

10

আমি জানি এটি একটি পুরানো থ্রেড, তবে আমি ঠিক একই সমস্যার মুখোমুখি হয়েছি। আমি <h2>এবং <p>ইনফুইন্ডোতে উপাদান ছিল এবং এই উভয়ের নীচে মার্জিন ছিল। আমি মার্জিনগুলি সরিয়ে দিয়েছি এবং ইনফো উইন্ডো সঠিকভাবে আকার পেয়েছি। অন্যান্য প্রস্তাবিত ফিক্সগুলির কোনওটিই কাজ করে না। আমি সন্দেহ করি যে ইনফো উইন্ডো আকারের গণনা মার্জিনগুলিকে বিবেচনায় নেয় না।


4
আমার এই সমস্যাটি ছিল এবং অন্য কোনও ফিক্সের কোনওটিই কাজ করে না, তবে এটি একটি করেছিল। ধন্যবাদ :)
ইয়ান ডান

এটি উইন্ডোর অভ্যন্তরে ব্যবহৃত সমস্ত মার্জিনের ক্ষেত্রে প্রযোজ্য।
জেডমোরেক

4
আমার এখনও সমস্যা ছিল, তবে <div style='overflow:hidden;'></div>এখন সবকিছু দেখতে বেশ ভাল লেগেছে।
জেডমোরেক

10

এর মধ্যে আমার উত্তর যুক্ত করতে যাচ্ছি, যেহেতু এর মধ্যে কোনওটিই আমার সমস্যা সমাধান করেছে। আমি আমার কন্টেন্টটি ডিভিতে গুটিয়ে রেখেছিলাম, সেই ডিভিডকে একটি শ্রেণি দিয়েছি এবং ডিভের উপর ডিভাইসটি min-widthনির্দিষ্ট maxWidthকরে দিচ্ছি, এবং তথ্য উইন্ডোতে নির্দিষ্ট করে রেখেছি এবং তাদের উভয়ই একই আকারের হওয়া দরকার, অন্যথায় প্রস্থ বা উচ্চতা উপচে পড়া হবে ঠিক ভুল পরিমাণে সামগ্রী সহ বক্সগুলিতে।

জাভাস্ক্রিপ্ট:

// Set up the content for the info box
var content = "<div class='infowindow-content'>" + content + "</div>";

// create a map info box
var infoWindow = new google.maps.InfoWindow({
    maxWidth: 350,
    content: content
});

সিএসএস:

div.infowindow-content {
    min-width: 350px;
}

4
min-widthসামগ্রীতে একটি সেট করা আমার পক্ষেও কাজ করেছিল। maxWidthতথাপি উইন্ডোতে যদিও সেট করতে হয়নি।
মার্ক পার্নেল

4
@ মার্কপার্নেল = ভালভাবে পরীক্ষা করার বিষয়টি নিশ্চিত করুন। যখন আমি একটি নির্দিষ্ট প্রস্থে নির্দিষ্ট পরিমাণের চেয়ে বেশি পাঠ্য থাকি তখন আমি ইস্যুগুলির মধ্যে চলে আসছিলাম! যদি আপনি কীভাবে বিষয়বস্তুটি হতে চলেছে তা যদি জানেন তবে কোনও বড় কথা নয় :)
জেন

আপনাকে অনেক ধন্যবাদ .. এটি আমাকে সাহায্য করেছে। মোবাইল ভিউতে আমি ম্যাক্সউইথ দিলাম: 350. এখনও এটি কিছু এলোমেলো মান নিচ্ছিল। ন্যূনতম প্রস্থের সাহায্যে এটি সূক্ষ্মভাবে কাজ করে।
ডিএসাহ

8

আমি এই সমস্ত সমাধানের চেষ্টা করেছি এবং কোনওটিই কাজ করে নি। কিছু পরীক্ষা এবং ত্রুটির পরে আমি এটি বের করেছিলাম।

<style type="text/css">
#map_canvas {
    line-height:normal;
}
</style>

লাইন-উচ্চতা সেট করুন: মানচিত্রের ক্যানভাস ডিভের জন্য সাধারণ।


হ্যাঁ! লাইন উচ্চতা আমার জন্য এটি স্থির করে। আর কিছুই কাজ করেনি। বিশেষত, আমার স্টাইলশীটে লাইন উচ্চতা সেট করে {লাইন-উচ্চতা: 1.3; । আমি এটিকে {লাইন-উচ্চতা: 1.3 মিমি to এ পরিবর্তন করেছি এবং এটি সমস্যার সমাধান করেছে।
tbradley22

অথবা অন্যথায় আপনি কেবল উপরে উল্লিখিত হিসাবে মানচিত্রের ধারক ডিভের লাইন উচ্চতাটিকে স্বাভাবিক হিসাবে সেট করতে পারেন।
tbradley22

#map_canvasগুগল ম্যাপস ভি 3 তে এমন কোনও নেই যা আমি দেখতে পাচ্ছি। এটি অবশ্যই পুরানো ভি 2 এর হতে হবে।
সাইমন পূর্ব

@ সিমন #map_canvasহ'ল দ্বি যা আপনি মানচিত্রের জন্য ব্যবহার করেন। এটি আপনি যে নামেই চান তা হতে পারে।
নিক

দুর্ভাগ্যক্রমে এটি সাহায্য করে না। এই ফ্রিডলটি
সাইমন পূর্ব

8

দেখা যাচ্ছে সমস্যাটি রোবোটো ওয়েবফন্টের সাথে।

ইনফাউন্ডো সরবরাহ করা সামগ্রীর উপর ভিত্তি করে ইনলাইন প্রস্থ এবং উচ্চতার বৈশিষ্ট্যগুলির সাথে রেন্ডার করা হয়। তবে এটি ইতিমধ্যে রেন্ডার / লোড হওয়া ওয়েবফন্টের সাথে গণনা করা হয় না। পুরো মানচিত্রটি স্ক্রিনে মুদ্রিত হওয়ার পরে ফন্টটি রেন্ডার হয়ে গেলে, তারপরে উইন্ডোটির ডিআইভিগুলির অভ্যন্তরে "ওভারফ্লো: অটো" বৈশিষ্ট্যগুলি ইনলাইন হওয়ার কারণে স্ক্রোলবারগুলি প্রদর্শিত হয়।

আমি যে সমাধানটি কাজ করেছিলাম তা হ'ল সামগ্রীটি একটি ডিআইভিতে আবৃত করা এবং তারপরে ওয়েবফন্টকে ওভাররাইড করার জন্য CSS প্রয়োগ করা:

.gmap_infowin {
    font-family: sans-serif !important;
    font-weight: normal !important;
}

<div class="gmap_infowin">Your info window content here.</div>

এই সমাধানটি আমার পক্ষে কাজ করে। এছাড়াও গোপন স্ক্রল কাজ: .gm-শৈলী-iw {ওভারফ্লো: hidden গুরুত্বপূর্ণ;} কিন্তু বিষয়বস্তুর এই ইচ্ছার লুকান অংশ infoWindow মধ্যে
কাল্পনিক

+1 হ্যাঁ! তবে আমি এই উত্তরটি ব্যবহারকারী 2656824 এর সাথে সংযুক্ত করেছি ।
স্পার্কি

+1 কারণ এটি একমাত্র উত্তর যা শেষ পর্যন্ত এই সত্যটি স্বীকার করে বলে মনে হয় যে এটি রোবোটো ফন্টের কারণে to অন্যান্য ফন্টগুলিও ভুলভাবে রেন্ডার হলে আমি অবাক হব না। সমস্যাটি হ'ল .gm-style-iw প্রয়োজনের তুলনায় একটি সামান্য বিট কম উচ্চতা গণনা করে, সম্ভবত ভাসমান বৃত্তাকার কারণে। সত্যিই কেবল যুক্তিসঙ্গত বিকল্প হ'ল দুর্ভাগ্যজনক .gm-style-iw {ওভারফ্লো: লুকানো! গুরুত্বপূর্ণ;}। অবশ্যই, আপনি যদি সত্যিই স্ক্রোল করতে চান তবে এটি অকেজো হয়ে যায়
ইউজার 151496

রোবোটো ফন্টটি কখনও কখনও এই সমস্যাটিকে ট্রিগার করে প্রদর্শিত হয় , তবে এটি আরিয়াল এবং ডিফল্ট ফন্টগুলির সাথেও ঘটে। আপনি যদি উইন্ডোজের ক্রোম 38-এ আপনার প্রস্তাবিত ফিক্সের সাহায্যে এই ঝাঁকুনির দিকে নজর দেন তবে এটিতে এখনও একটি বাজে স্ক্রোলবার রয়েছে: jsfiddle.net/simoneast/dckxp62o/2
সাইমন ইস্ট

5

যথেষ্ট মজাদার, যখন নিম্নলিখিত কোডটি WIDTH স্ক্রোল বারটিকে সংশোধন করবে:

.gm-style-iw
{
    overflow: hidden !important;
    line-height: 1.35;

}

উচ্চ স্ক্রোল বারটি সংশোধন করতে এটি লেগেছে:

    .gm-style-iw div
    {
        overflow: hidden !important;
    }

সম্পাদনা: হোয়াইট-স্পেস যুক্ত করা: এখনইর্যাপ; উভয় শৈলীতে ফাঁকা থাকা সমস্যাটি সংশোধন করতে পারে যা স্ক্রোল বারগুলি অপসারণ করার পরে অলস বলে মনে হয়। দুর্দান্ত পয়েন্ট নাথান


আমি মনে করি এইচ 4 ট্যাগের মোড়কের কারণে আমার সমস্যা হয়েছিল। আমি যখন আপনার পরামর্শ যুক্ত করলাম এটি স্ক্রোল বারগুলি সরিয়ে ফেলল তবে উইন্ডোর নীচে একটি সামান্য বিট ছিল। আমি যখন হোয়াইট-স্পেস যুক্ত করেছি: এখন চাপুন; এইচ 4 এ সব ভাল হয়ে গেছে। ধন্যবাদ!
নাট বুনি 18

4

এটি আমার পক্ষে কাজ করে। একটি রাখুন divমধ্যেsetContent

sh_map.infoWindow.setContent([
  '<div id=\"mydiv\">',
  'Your content goes here',
].join(''));

তারপরে আপনার পৃষ্ঠায় এই সিএসএস যুক্ত করুন:

<style type="text/css">
#map-canvas {
 text-align: center;
 vertical-align: middle;
}
#mydiv {
 font-family: "Comic Sans MS", cursive;
 font-size: 10px;
 border-top-width: 0px;
 border-right-width: 0px;
 border-bottom-width: 0px;
 border-left-width: 0px;
 border-top-style: none;
 border-right-style: none;
 border-bottom-style: none;
 border-left-style: none;
 letter-spacing: normal;
 text-align: center;
 vertical-align: middle;
 word-spacing: normal;
}
</style>

উদাহরণস্বরূপ, http://www.student-homes-northampton.co.uk দেখুন ; গুগল ম্যাপ প্রদর্শন করতে বাড়ির ছবিগুলির নীচে লিঙ্কগুলি ক্লিক করুন।


29
ধন্যবাদ, আমি আমার ফন্টটি কমিক-সানসে সেট না করা পর্যন্ত এটি কাজ শুরু করে নি।
ব্রেট

4

এটি আমার সমস্যার সম্পূর্ণ সমাধান করেছে:

.gm-style-iw {
    overflow: visible !important;
    height: auto !important;
    width: auto !important;
}

এটি আমার পক্ষে সবচেয়ে কাছের উত্তর worked স্বয়ংক্রিয় উচ্চতার পরিবর্তে, আমি এর পরিবর্তে সর্বনিম্ন উচ্চতা যুক্ত করেছি।
পল

3

আইইয়ের সাথে আমার একই সমস্যা ছিল এবং এই প্রতিক্রিয়াগুলিতে বিস্তারিত অনেকগুলি সমাধানের চেষ্টা করেছি, তবে IE এর উল্লম্ব স্ক্রোলবারগুলি নির্ভরযোগ্যভাবে মুছে ফেলতে পারিনি।

আমার জন্য যা সবচেয়ে ভাল কাজ করেছে তা হল ইনফাইন্ডোর ভিতরে স্থির ফন্টের আকারগুলিতে স্যুইচ করা - 'পিএক্স' ... আমি ইএমএস ব্যবহার করছিলাম। ফন্টের আকার স্থির করে আমার আর স্পষ্টভাবে ইনফাইন্ডো প্রস্থ বা উচ্চতা ঘোষণা করার দরকার পড়েনি এবং স্ক্রোলবারগুলি ভাল হয়ে গেছে।


এটি কখনও কখনও সহায়তা করে তবে নির্ভরযোগ্যভাবে সমস্যাটি সমাধান করে না। আপনি যদি উইন্ডোজের ক্রোম 38 এ এই ঝাঁকুনিটি
সাইমন পূর্ব

2

মানচিত্রের ধারকটির উচ্চতাও গুরুত্বপূর্ণ। যদি ছোট তথ্য উইন্ডোতে সর্বদা 80px উচ্চতায় থাকবে। অন্যথায় maxWidthএবং #innerDivফিক্স একটি কবজ মত কাজ করে।


হুবহু, আমি মনে করি না যে কোনও স্থির আকার, তবে মুল বক্তব্যটি যদি মানচিত্রটি যথেষ্ট পরিমাণে বড় না হয় (এই ক্ষেত্রে উচ্চতা) তবে ইনফাইন্ডোটি আমাদের সামগ্রীতে মোড়ানোর জন্য আকার পরিবর্তন করবে না। মানচিত্রটি আরও বড় করার চেষ্টা করুন এবং আবার চেক করুন
স্পু

এটি এখানে সবচেয়ে সঠিক উত্তর। খুব ছোট একটি মানচিত্র সাধারণত ইনফাইন্ডো আকারের সমস্যার কারণ। আপনি যদি তত্ত্বটি পরীক্ষা করতে চান তবে কেবল মানচিত্রের ধারকটি পরীক্ষা করুন এবং প্রস্থ এবং উচ্চতা বৃদ্ধি করুন।
পিম

দুর্ভাগ্যক্রমে এখনও যথাযথ বৃহত মানচিত্র নিয়ে সমস্যা রয়েছে।
সাইমন ইস্ট

2

অন্য কিছু না হলে, উইন্ডোটি খোলার পরে সামগ্রীটি যুক্ত করার চেষ্টা করুন। এটি এটি পুনরায় আকার দিতে বাধ্য করা উচিত।

infoWindow = new google.maps.InfoWindow()
infoWindow.open(map, marker)
infoWindow.setContent(content)

0

ডোমড্রিড ইভেন্টটি ব্যবহার করুন এবং তথ্য উইন্ডোটি আবার খুলুন এবং সমস্ত ডোম উপাদান লোড হয়েছে তা নিশ্চিত করার জন্য ডমড্রেড ইভেন্ট দু'বার আগুন লাগার পরে লুকানো সামগ্রী দেখান।

// map is created using google.maps.Map() 
// marker is created using google.maps.Marker()
// set the css for the content div .infowin-content { visibility: hidden; } 

infowindow = new google.maps.InfoWindow();    
infowindow.setContent("<div class='infowin-content'>Content goes here</div>");
infowindow.setPosition(marker.getPosition());
infowindow.set("isdomready", false);
infowindow.open(map);   

// On Dom Ready
google.maps.event.addListener(infowindow, 'domready', function () {
    if (infowindow.get("isdomready")) {
        // show the infowindow by setting css 
        jQuery('.infowin-content').css('visibility', 'visible');               
    }
    else {
        // trigger a domready event again.
        google.maps.event.trigger(infowindow, 'content_changed');
        infowindow.set("isdomready", true);
    }
}

আমি কেবল একটি সেটটাইমআউট (/ * ইনফোউইন কলব্যাক * /, 100 প্রদর্শন) করার চেষ্টা করেছি, তবে কখনও কখনও সামগ্রীটি (যেমন: চিত্রগুলি) লোড হতে খুব বেশি সময় নেয় তবে এটি এখনও কাজ করে না।

আশা করি এটি আপনার পক্ষে কাজ করে।


0

আমার <h2>উপাদানটি দ্বিতীয় লাইনে আবৃত হওয়ার সময় আমি বিশেষত লক্ষণীয় ।

আমি <div>ইনফো উইন্ডোতে একটিতে একটি ক্লাস প্রয়োগ করেছি এবং ফন্টগুলি একটি জেনেরিক সিস্টেম ফন্টে পরিবর্তন করেছি (আমার ক্ষেত্রে হেলভেটিকা) বনাম একটি @ ফন্ট-ফেস ওয়েব ফন্ট যা এটি ব্যবহার করছে। সমস্যা সমাধান হয়েছে।


দুর্ভাগ্যক্রমে এটি একটি নির্ভরযোগ্য সমাধান নয় isn't সমস্যাটি আড়িয়াল এবং অন্যান্য স্ট্যান্ডার্ড ফন্টগুলির সাথেও ঘটে বলে জানা গেছে।
সাইমন পূর্ব


0

একটি যোগ করুন min-heightআপনার infoWindow বর্গ উপাদানে।

যদি আপনার ইনফো উইন্ডোজ সমস্ত একই আকার হয় তবে এটি সমস্যার সমাধান করবে।

যদি তা না হয় তবে jWery এর এই লাইনটি তথ্য উইন্ডোর জন্য আপনার ক্লিক ফাংশনে যুক্ত করুন:

//remove overflow scrollbars
$('#myDiv').parent().css('overflow','');

আপনি সঠিক পথে আছেন তথ্য উইন্ডোর ন্যূনতম উচ্চতা আপনাকে সাহায্য করবে না, কারণ এটি ডিআইভির বাইরে থাকা ডিআইভির মধ্যে রয়েছে যা উপচে পড়েছে। সুতরাং একটি মিনিট উচ্চতা সেট করা এটি প্রতিবার স্ক্রোল করে তুলবে।
ক্লকওয়ার্কড 247

ডিওএমের কাঠামোর দিকে তাকিয়ে, এটি আসলে ইনফো উইন্ডো শ্রেণীর গ্র্যান্ডপ্রেন্ট যার ওভারফ্লো অপসারণ করা প্রয়োজন। আমার কোডটি দেখতে এমন কিছু দেখাচ্ছে: infoCallBack = ফাংশন তথ্যক্যালব্যাক (infowindow, চিহ্নিতকারী) window রিটার্ন ফাংশন () window / * উইন্ডো প্রদর্শনের জন্য কোড এখানে চলে যায়, তারপরে আমার ওভারফ্লো ঠিক করুন * / সেটটাইমআউট (ফাংশন () {$ ('। ইনফাইন্ডো') .পিতা ()। পিতামাতা ()। সিএসএস ('ওভারফ্লো', '');}, 25); }} যা মূলত 25 মিনিটের পরে ইনফোউন্ডার সংশোধন করে, এটি রেন্ডার করার জন্য পর্যাপ্ত সময় দেয়।
ক্লকওয়ার্কড 247

0

আমি এটি কোনও উপায়ে বা আকারে কাজ করতে পারি না, আমি বাক্সে 3 ডিভ যোগ করছিলাম। আমি এগুলি প্রস্থ এবং উচ্চতাগুলি যথাযথভাবে সেট করে একটি বাহ্যিক ডিভের মধ্যে আবৃত করেছি, এবং কিছুই কার্যকর হয়নি।

শেষ পর্যন্ত আমি ডিভটিকে নিখুঁত শীর্ষে বাম হিসাবে সেট করে ঠিক করেছি এবং তারপরে ডিভের আগে, আমি দুটি স্বচ্ছ গিফের, একটি 300px প্রশস্ত এবং 1px উচ্চ, একটি 120px উচ্চ এবং 1px প্রশস্ত দুটি চিত্র স্থাপন করেছি।

এটি তখন সঠিকভাবে স্কেল!

এটি কুৎসিত তবে এটি কাজ করে।

আপনি একটি চিত্রও করতে পারেন এবং আমার প্রত্যাশিত একটি জিনডেক্সও সেট করতে পারেন, বা আপনার উইন্ডোর কোনও ইন্টারঅ্যাকশন না থাকলে কেবল একটি চিত্র এমনকি এটি একটি ফর্ম ধারণ করে, সুতরাং, এটি কোনও বিকল্প ছিল না ...


0

আমি মনে করি যে এই আচরণটি বাইরের পাত্রে কিছু সিএসএস স্টাইলিংয়ের কারণে হয়েছে, আমার একই সমস্যা ছিল তবে আমি এটি একটি অভ্যন্তরীণ ডিভ ব্যবহার করে সমাধান করেছি এবং এতে কিছু প্যাডিং যুক্ত করছি, আমি জানি এটি অদ্ভুত তবে এটি সমস্যার সমাধান করেছে

<div id="fix_height">
    <h2>Title</h2>
    <p>Something</p>
</div>

এবং আমার স্টাইল। CSS এ

div#fix_height{
    padding: 5px;
}

0

আমি একটি ইনলাইন উপাদান (একটি একটি ট্যাগ) সরাসরি ভেতরে ছিল divসঙ্গে style="overflow:auto"[...আবৃত করে একটি মধ্যে pট্যাগ এবং এটি সংশোধন করা হয়েছে।

দেখে মনে হচ্ছে যে কোনও ইনলাইন উপাদান যা ইনফাউইন্ডোর সরাসরি অভ্যন্তরে কোনও ব্লক উপাদানে বাসা বাঁধে না এটি এর কারণ ঘটবে।


0

আমার উত্তরটি হ'ল শ্রোতা যুক্ত করা (অ্যাডলিসটনারঅনস ব্যবহার করে) ইনডম উইন্ডোটি ডিওমে যুক্ত হয়েছে কিনা তা পরীক্ষা করে আবার ইনফো উইন্ডোটি খোলার (এটি বন্ধ করার দরকার নেই)।

// map, marker and infoWindow code, we'll call them 
// myMap, myMarker and myInfoWindow

myInfoWindow.open(myMap, myMarker);
google.maps.event.addListenerOnce(myInfoWindow, 'domready', function(){
                myInfoWindow.open(myMap, myMarker);
            });

0

আমার সিএসএসে নিম্নলিখিতগুলি যুক্ত করা আমার পক্ষে কৌশলটি করেছে:

white-space: nowrap;

এটি দীর্ঘ লাইনে মোড়ক সরিয়ে ফেলবে। আমি মনে করি না যে এটি অনেক মানুষের জন্য উপযুক্ত সমাধান solution
সাইমন পূর্ব

0

সমস্ত ব্রাউজারে আমার জন্য কাজ করা সমস্ত সমাধানের সংক্ষিপ্তসার হিসাবে:

  • ইনফাইন্ডোর অভ্যন্তরে মার্জিনগুলি ব্যবহার করবেন না, কেবল প্যাডিং করবেন।
  • ইনফাইন্ডোর জন্য সর্বাধিক প্রস্থ নির্ধারণ করুন:

    this.infowindow = new google.maps.InfoWindow({ maxWidth: 200 });

  • এর সাথে ইনফাউন্ডোর সামগ্রীগুলি মোড়ানো

    <div style="overflow:hidden;line-height:1.35;min-width:200px;">*CONTENT*</div>

    (আপনি ইনফিনিয়ডো ম্যাক্সউইথের উপরে যে মান নির্ধারণ করেছেন তার ন্যূনতম প্রস্থ পরিবর্তন করুন)

আমি এটি পরীক্ষা করেছি এবং এটি প্রতিটি ব্রাউজারে কাজ করেছে এবং আমার 400 টিরও বেশি মার্কার ছিল ...


এটি ইনফো উইন্ডোতে একটি স্থির প্রস্থ নির্ধারণ করে (আর তরল নয়), এটি একটি সমাধান তবে আদর্শ নয়।
সাইমন ইস্ট

0

আমি জানি যে প্রচুর অন্যান্য লোকেরা সমাধান খুঁজে পেয়েছেন যা তাদের নির্দিষ্ট ক্ষেত্রে কাজ করেছিল, তবে যেহেতু তাদের কেউই আমার বিশেষ মামলার পক্ষে কাজ করেনি , তাই আমি ভেবেছিলাম এটি অন্য কারও পক্ষে সহায়ক হতে পারে।

কিছু বিশদ:

আমি এমন একটি প্রকল্পে গুগল ম্যাপস এপিআই ভি 3 ব্যবহার করছি যেখানে ইনলাইন সিএসএস এমন কিছু যা আমরা সত্যই সত্যই এড়াতে চাই। আমার infowindows IE11 ব্যতীত সমস্ত কিছুর জন্য কাজ করছিল, যেখানে প্রস্থটি সঠিকভাবে গণনা করা হয়নি। এর ফলে ডিভ ওভারফ্লো হয়েছে, যা স্ক্রোলবারকে ট্রিগার করেছিল।

আমাকে তিনটি জিনিস করতে হয়েছিল:

  1. সমস্ত প্রদর্শন সরিয়ে ফেলুন: ইনফাউন্ডো সামগ্রীর অভ্যন্তরীণ যে কোনও কিছু থেকে ইনলাইন-ব্লক শৈলীর নিয়ম (আমি প্রদর্শনের সাথে প্রতিস্থাপন করেছি: ব্লক) - আমি থ্রেড থেকে এটি চেষ্টা করার ধারণা পেয়েছি (যা আমি আর খুঁজে পাচ্ছি না) যেখানে কারওর মতো ছিল আই 6 নিয়ে সমস্যা।

  2. স্ট্রিংয়ের পরিবর্তে সামগ্রীটি ডিওএম নোড হিসাবে পাস করুন। আমি jQuery ব্যবহার করছি, তাই আমি প্রতিস্থাপনের infowindow.setContent(infoWindowDiv.html());মাধ্যমে infowindow.setContent($(infoWindowDiv.html())[0]); এটি করতে পারলাম: এটি আমার পক্ষে সহজতম হিসাবে প্রমাণিত হয়েছিল, তবে একই ফলাফলটি পাওয়ার আরও অনেক উপায় রয়েছে।

  3. ব্যবহার করুন "setMaxWidth" হ্যাক - MaxWidth বিকল্প সেট কন্সট্রাকটর মধ্যে সেটিং বিকল্প পরে কাজ না করে -। আপনি যদি সত্যিই সর্বাধিক প্রস্থ না চান, কেবল এটি একটি খুব বড় সংখ্যায় সেট করুন।

আমি জানি না কেন এগুলি কাজ করেছে এবং আমি নিশ্চিত নই যে এগুলির কোনও উপসেট কাজ করবে কিনা। আমি জানি যে এগুলির কোনওটিই আমার ব্যবহারের সমস্ত ক্ষেত্রে পৃথক পৃথকভাবে কাজ করে না এবং 2 + 3 কাজ করে না। আমার কাছে 1 + 2 বা 1 + 3 পরীক্ষা করার সময় নেই।


0

তথ্য উইন্ডোর প্রস্থ এবং উচ্চতা সম্পর্কে হার্ড কোড করা বা সেট করা আমার পক্ষে গ্রহণযোগ্য ছিল না white-space: nowrap, maxWidthসমাধানটি আমার এবং অন্য সমস্ত কিছুতে কাজ করে না বা আমার ব্যবহারের ক্ষেত্রে অন্যথায় অনুপযুক্ত ছিল।

আমার সমাধানটি ছিল সামগ্রীটি সেট করা, উইন্ডোটি খুলুন এবং তারপরে domreadyইভেন্টটি চালিত হওয়ার পরে, heightসামগ্রীটিতে সিএসএস সম্পত্তিটি উচ্চতা অনুসারে নির্ধারণ করুন এবং তারপরে গুগল মানচিত্রকে ইনফোউইন্ডোর আকার পরিবর্তন করতে বাধ্য করুন।

infoWindowইনফো উইন্ডো অবজেক্টটি হ'ল, $infoWindowContentsআমি সেখানে যে বিষয়বস্তু রাখতে চাইছি তার একটি জ্যাকুরি অবজেক্ট , mapএটি আমার মানচিত্র অবজেক্ট। markerএমন একটি চিহ্নিতকারী যা ক্লিক করা হয়েছিল।

infoWindow.setContent($infoWindowContents.get(0));

var listener = google.maps.event.addListener(infoWindow, 'domready', function() {
  // Stop listening, otherwise the listeners stack up if the window is opened again
  google.maps.event.removeListener(listener);

  // Set the height on the container to however tall the browser is currently rendering it
  $infoWindowContents.height($infoWindowContents.height());

  // Force Google Maps to recalculate the InfoWindow height
  infoWindow.setContent($infoWindowContents.get(0));
});

infoWindow.open(map, marker);

(আমি একই সমাধানটির উপরে একই পোস্টটি পোস্ট করেছি যাতে আমি কীভাবে কোনও গুগল-ম্যাপস ইনফো উইন্ডোকে এর ভিতরে রাখা সামগ্রীতে ফিট করতে পুনরায় আকার দিতে পারি? )


0

সময় হারাতে এবং কিছুক্ষণ পড়ার পরে, আমি কেবল সহজ কিছু চাইছিলাম, এই সিএসএসটি আমার প্রয়োজনীয়তার জন্য কাজ করেছিল।

.gm-style-iw > div { overflow: hidden !important; }

তাত্ক্ষণিক সমাধান নয় তবে ইস্যুতে তারকাচিহ্নিত / মন্তব্য করা তাদের এটি ঠিক করতে পারে, কারণ তারা বিশ্বাস করে যে এটি স্থির রয়েছে: http://code.google.com/p/gmaps-api-issues/issues/detail?id= 5713


এটি কিছু ক্ষেত্রে সামগ্রী কেটে দেয়। :-( উইন্ডোজের ক্রোম 38-এ এই ফ্রিডલમાં
সাইমন ইস্ট

0

আচ্ছা এটিই আমার জন্য কৌশলটি করেছেন:

.gm-style-iw>div {
    overflow: visible !important;
}

শুধু সেটিং overflow: visibleউপর .gm-style-iwসমস্যা আরও খারাপ আসলে তৈরি! আমি ক্রোম বিকাশকারী সরঞ্জাম পরিদর্শকের মধ্যে লক্ষ্য করেছি যে .gm-style-iwউপাদানটির ভিতরে দুটি ডিভ রয়েছে , যা উভয়ই overflow: autoডিফল্টরূপে সেট করেছে।

আমি আমার ইনফোউইন্ডোগুলিতে বেশিরভাগ এইচটিএমএল-ফর্ম্যাটযুক্ত পাঠ্য প্রদর্শন করছি, এ কারণেই অন্যান্য সমাধানগুলি আমার পক্ষে মোটেও কাজ করে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.